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框架veryide.librar源代码
Mar 05 Javascript
分享十五个最佳jQuery 幻灯插件和教程
Mar 27 Javascript
dojo随手记 gird组件引用
Feb 24 Javascript
jQuery实用基础超详细介绍
Apr 11 Javascript
jQuery Validate初步体验(一)
Dec 12 Javascript
浅析JavaScript作用域链、执行上下文与闭包
Feb 01 Javascript
BootstrapTable+KnockoutJS自定义T4模板快速生成增删改查页面
Aug 01 Javascript
javascript 中的try catch应用总结
Apr 01 Javascript
JS继承与闭包及JS实现继承的三种方式
Oct 15 Javascript
一个小时快速搭建微信小程序的方法步骤
Apr 15 Javascript
vuejs数据超出单行显示更多,点击展开剩余数据实例
May 05 Javascript
详解wepy开发小程序踩过的坑(小结)
May 22 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 文件上传代码(限制jpg文件)
2010/01/05 PHP
PHP 截取字符串函数整理(支持gb2312和utf-8)
2010/02/16 PHP
PHP生成短网址的3种方法代码实例
2014/07/08 PHP
PHP会员找回密码功能的简单实现
2016/09/05 PHP
javascript编程起步(第四课)
2007/01/10 Javascript
关于全局变量和局部变量的那些事
2013/01/11 Javascript
js模仿jquery的写法示例代码
2013/06/16 Javascript
深入理解JavaScript系列(42):设计模式之原型模式详解
2015/03/04 Javascript
js日期范围初始化得到前一个月日期的方法
2015/05/05 Javascript
Javascript BOM学习小结(六)
2015/11/26 Javascript
javascript从定义到执行 你不知道的那些事
2016/01/04 Javascript
Boostrap栅格系统与自己额外定义的媒体查询的冲突问题
2017/02/19 Javascript
VSCode 配置React Native开发环境的方法
2017/12/27 Javascript
微信小程序实现列表下拉刷新上拉加载
2020/07/29 Javascript
如何手动实现es5中的bind方法详解
2018/12/07 Javascript
在antd中setFieldsValue和defaultVal的用法
2020/10/29 Javascript
Vue +WebSocket + WaveSurferJS 实现H5聊天对话交互的实例
2020/11/18 Vue.js
python通过BF算法实现关键词匹配的方法
2015/03/13 Python
Python WXPY实现微信监控报警功能的代码
2017/10/20 Python
Python反射用法实例简析
2017/12/22 Python
解决python Jupyter不能导入外部包问题
2020/04/15 Python
使用python实现下载我们想听的歌曲,速度超快
2020/07/09 Python
Python使用lambda抛出异常实现方法解析
2020/08/20 Python
Python 操作 MySQL数据库
2020/09/18 Python
手把手教你从PyCharm安装到激活(最新激活码),亲测有效可激活至2089年
2020/11/25 Python
丝芙兰波兰:Sephora.pl
2018/03/25 全球购物
中国专业的音频分享平台:喜马拉雅
2019/05/24 全球购物
远程学习的教学用品和家庭学习资源:Really Good Stuff
2020/04/27 全球购物
会计与审计毕业生自荐信范文
2013/12/30 职场文书
夫妻婚内购房协议书
2014/10/05 职场文书
刮痧观后感
2015/06/05 职场文书
机器人总动员观后感
2015/06/09 职场文书
小学数学教师研修日志
2015/11/13 职场文书
Python list去重且保持原顺序不变的方法
2021/04/03 Python
python plt.plot bar 如何设置绘图尺寸大小
2021/06/01 Python
MySQL如何使用使用Xtrabackup进行备份和恢复
2021/06/21 MySQL