window.location.href中url中数据量太大时的解决方法


Posted in Javascript onDecember 23, 2013

先说一下今天遇到的问题

一个导出excel的处理,在按钮按下后需要传很大一个数据到后台,刚开始的做法如下:

var actionUrlSetData = "****Action!exportDatas.action"+ "?now=" + new Date().getTime();
window.location.href= actionUrl + "&" + data;

上面的data就是一个很长的字符串。

这样在火狐和谷歌浏览器都是没有问题的,但是在ie9(其他ie没试,应该同理)就不能正常导出

导致这个问题的原因是各种浏览器对URL解析的长度限制是不同的,ie就是最小的那个,所以出问题了


Microsoft Internet Explorer (Browser)
IE浏览器对URL的最大限制为2083个字符,如果超过这个数字,提交按钮没有任何反应。

Firefox (Browser)
对于Firefox浏览器URL的长度限制为65,536个字符

Safari (Browser)

URL最大长度限制为 80,000个字符。

Opera (Browser)

URL最大长度限制为190,000个字符。

Google (chrome)

url最大长度限制为8182个字符

这里还要注意的是WEB服务器对URL的长度也有限制!!

因此不能用Get方法了,只能想办法用post传值,从而有了下面的方案,不知妥否,还请高手指点,总之功能是可以实现了

思路是用post把那个长长的字符串传到后台,保存到session中,在post的回调方法中再用window.location.href

代码如下:

$.post(actionUrlSetData,mapList ,function(){
        var actionUrl = path + "/***action!exportDatas.action"+ "?now=" + new Date().getTime();
        window.location.href= actionUrl + "&" + (data);
    });
Javascript 相关文章推荐
JS实现浏览器菜单命令
Sep 05 Javascript
prototype Element学习笔记(篇二)
Oct 26 Javascript
IE JS无提示关闭窗口不提示的方法
Apr 29 Javascript
基于jQuery的简单的列表导航菜单
Mar 02 Javascript
Jquery 选中表格一列并对表格排序实现原理
Dec 15 Javascript
js自定义事件及事件交互原理概述(一)
Feb 01 Javascript
js截取中英文字符串、标点符号无乱码示例解读
Apr 17 Javascript
JQuery动画animate的stop方法使用详解
May 09 Javascript
判断window.onload是否多次使用的方法
Sep 21 Javascript
基于JQuery和CSS3实现仿Apple TV海报背景视觉差特效源码分享
Sep 21 Javascript
vue router 源码概览案例分析
Oct 09 Javascript
微信小程序获取用户信息并保存登录状态详解
May 10 Javascript
取消选中单选框radio的三种方式示例介绍
Dec 23 #Javascript
如何在指定的地方插入html内容和文本内容
Dec 23 #Javascript
js 阻止子元素响应父元素的onmouseout事件具体实现
Dec 23 #Javascript
在js文件中写el表达式取不到值的原因及解决方法
Dec 23 #Javascript
js 通用订单代码
Dec 23 #Javascript
js 跳出页面的frameset框架示例介绍
Dec 23 #Javascript
html5 canvas js(数字时钟)实例代码
Dec 23 #Javascript
You might like
PHP系统流量分析的程序
2006/10/09 PHP
php文档更新介绍
2011/07/22 PHP
php中使用接口实现工厂设计模式的代码
2012/06/17 PHP
PHP实现图片旋转效果实例代码
2014/10/01 PHP
ThinkPHP中自定义错误页面和提示页面实例
2014/11/22 PHP
PHP版本升级到7.x后wordpress的一些修改及wordpress技巧
2015/12/25 PHP
yii2.0框架实现上传excel文件后导入到数据库的方法示例
2020/04/13 PHP
很全的显示阴历(农历)日期的js代码
2009/01/01 Javascript
用jQuery扩展自写的 UI导航
2010/01/13 Javascript
javascript 全等号运算符使用说明
2010/05/31 Javascript
javascript实现文字图片上下滚动的具体实例
2013/06/28 Javascript
jQuery检测鼠标左键和右键点击的方法
2015/03/17 Javascript
jQuery实现强制cookie过期方法汇总
2015/05/22 Javascript
jQuery实现form表单基于ajax无刷新提交方法详解
2015/12/08 Javascript
解决ionic和angular上拉加载的问题
2017/08/03 Javascript
js 取消页面可以选中文字的功能方法
2018/01/02 Javascript
详解Vue 全局引入bass.scss 处理方案
2018/03/26 Javascript
vue中Element-ui 输入银行账号每四位加一个空格的实现代码
2018/09/14 Javascript
vue-cli webpack 引入swiper的操作方法
2018/09/15 Javascript
脚手架vue-cli工程webpack的作用和特点
2018/09/29 Javascript
vue实现点击隐藏与显示实例分享
2019/02/13 Javascript
[46:14]VGJ.T vs Liquid 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
Python获取单个程序CPU使用情况趋势图
2015/03/10 Python
介绍Python中的一些高级编程技巧
2015/04/02 Python
python实现堆和索引堆的代码示例
2018/03/19 Python
python3+PyQt5重新实现QT事件处理程序
2018/04/19 Python
Python实现个人微信号自动监控告警的示例
2019/07/03 Python
python栈的基本定义与使用方法示例【初始化、赋值、入栈、出栈等】
2019/10/24 Python
django处理select下拉表单实例(从model到前端到post到form)
2020/03/13 Python
韩国现代百货官网:Hmall
2018/03/21 全球购物
ESDlife健康生活易:身体检查预订、搜寻及比较
2019/05/10 全球购物
临床医师专业个人自我评价范文
2013/11/07 职场文书
大专生简历的自我评价
2013/11/26 职场文书
会计与出纳自荐书范文
2014/03/16 职场文书
党员剖析材料范文
2014/12/18 职场文书
Python制作动态字符画的源码
2021/08/04 Python