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 相关文章推荐
javascript转换字符串为dom对象(字符串动态创建dom)
May 10 Javascript
JavaScript自执行闭包的小例子
Jun 29 Javascript
js加入收藏以及使用Jquery更改透明度
Jan 26 Javascript
javascript模拟枚举的简单实例
Mar 06 Javascript
详解AngularJS中module模块的导入导出
Dec 10 Javascript
AngularJS ng-controller 指令简单实例
Aug 01 Javascript
基于JavaScript实现鼠标箭头移动图片跟着移动
Aug 30 Javascript
bootstrapfileinput实现文件自动上传
Nov 08 Javascript
textarea 在浏览器中固定大小和禁止拖动的实现方法
Dec 03 Javascript
jQuery插件HighCharts绘制2D带有Legend的饼图效果示例【附demo源码下载】
Mar 10 Javascript
vue获取当前激活路由的方法
Mar 17 Javascript
Vue.js组件通信之自定义事件详解
Oct 19 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获取字符串中各个字符出现次数的方法
2015/02/23 PHP
利用jquery.qrcode在页面上生成二维码且支持中文
2014/02/12 Javascript
jquery控制display属性为none或block
2014/03/31 Javascript
跟我学习javascript的Date对象
2015/11/19 Javascript
js格式化时间的方法
2015/12/18 Javascript
javascript简单比较日期大小的方法
2016/01/05 Javascript
JavaScript实现相册弹窗功能(zepto.js)
2016/06/21 Javascript
URL的参数中有加号传值变为空格的问题(URL特殊字符)
2016/11/04 Javascript
轻松玩转BootstrapTable(后端使用SpringMVC+Hibernate)
2017/09/06 Javascript
vue中mint-ui的使用方法
2018/04/04 Javascript
微信小程序授权登录及解密unionId出错的方法
2018/09/26 Javascript
Vue.js+cube-ui(Scroll组件)实现类似头条效果的横向滚动导航条
2019/06/24 Javascript
详解用async/await来处理异步
2019/08/28 Javascript
Vue实现手机扫描二维码预览页面效果
2020/05/28 Javascript
详解JavaScript 作用域
2020/07/14 Javascript
[09:33]2015国际邀请赛第四日TOP10
2015/08/08 DOTA
python通过pil模块将raw图片转换成png图片的方法
2015/03/16 Python
Python网络爬虫出现乱码问题的解决方法
2017/01/05 Python
Numpy中转置transpose、T和swapaxes的实例讲解
2018/04/17 Python
基于python实现KNN分类算法
2020/04/23 Python
python实现在函数图像上添加文字和标注的方法
2019/07/08 Python
爬虫代理池Python3WebSpider源代码测试过程解析
2019/12/20 Python
python实现超级马里奥
2020/03/18 Python
解决Alexnet训练模型在每个epoch中准确率和loss都会一升一降问题
2020/06/17 Python
Python csv文件记录流程代码解析
2020/07/16 Python
python 利用jieba.analyse进行 关键词提取
2020/12/17 Python
利用CSS3的3D效果制作正方体
2020/03/10 HTML / CSS
英国著名的药妆网站:Escentual
2016/07/29 全球购物
秘书行业自我鉴定范文
2013/12/30 职场文书
2014村务公开实施方案
2014/02/25 职场文书
搞笑创意广告语
2014/03/17 职场文书
遗产继承公证书
2014/04/09 职场文书
2014年优质护理服务工作总结
2014/11/14 职场文书
天谕手游15杯全调酒配方和调酒券的获得方式
2022/04/06 其他游戏
Redis Lua脚本实现ip限流示例
2022/07/15 Redis
怎么禁用Win11输入法 最新Win11输入法关闭教程
2022/08/05 数码科技