手机
当前位置:查字典教程网 >编程开发 >Javascript教程 >window.location.href中url中数据量太大时的解决方法
window.location.href中url中数据量太大时的解决方法
摘要:先说一下今天遇到的问题一个导出excel的处理,在按钮按下后需要传很大一个数据到后台,刚开始的做法如下:复制代码代码如下:varaction...

先说一下今天遇到的问题

一个导出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);

});

【window.location.href中url中数据量太大时的解决方法】相关文章:

javascript实现动态改变层大小的方法

js比较日期大小的方法

AngularJS数据源的多种获取方式汇总

JS实现两表格里数据来回转移的方法

JavaScript获得指定对象大小的方法

js+html5操作sqlite数据库的方法

jQuery替换textarea中换行的方法

JQuery给网页更换皮肤的方法

Javascript中prototype属性实现给内置对象添加新的方法

jQuery实现将页面上HTML标签换成另外标签的方法

精品推荐
分类导航