源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

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

  • 时间:2021-06-23 23:14 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:window.location.href中url中数据量太大时的解决方法
先说一下今天遇到的问题 一个导出excel的处理,在按钮按下后需要传很大一个数据到后台,刚开始的做法如下:
[u]复制代码[/u] 代码如下:
var actionUrlSetData = "****Action!exportDatas.action"+ "?now=" + new Date().getTime(); window.location.href= actionUrl + "&" + data;
上面的data就是一个很长的字符串。 这样在火狐和谷歌浏览器都是没有问题的,但是在ie9(其他ie没试,应该同理)就不能正常导出 导致这个问题的原因是各种浏览器对URL解析的长度限制是不同的,ie就是最小的那个,所以出问题了 [b]Microsoft Internet Explorer (Browser)[/b] IE浏览器对URL的最大限制为2083个字符,如果超过这个数字,提交按钮没有任何反应。 [b]Firefox (Browser)[/b] 对于Firefox浏览器URL的长度限制为65,536个字符 [b]Safari (Browser)[/b] URL最大长度限制为 80,000个字符。 [b]Opera (Browser)[/b] URL最大长度限制为190,000个字符。 [b]Google (chrome)[/b] url最大长度限制为8182个字符 这里还要注意的是WEB服务器对URL的长度也有限制!! 因此不能用Get方法了,只能想办法用post传值,从而有了下面的方案,不知妥否,还请高手指点,总之功能是可以实现了 思路是用post把那个长长的字符串传到后台,保存到session中,在post的回调方法中再用window.location.href 代码如下:
[u]复制代码[/u] 代码如下:
$.post(actionUrlSetData,mapList ,function(){         var actionUrl = path + "/***action!exportDatas.action"+ "?now=" + new Date().getTime();         window.location.href= actionUrl + "&" + (data);     });
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部