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入门学习资料收集整理篇
Jul 06 Javascript
基于Jquery的仿照flash放大图片效果代码
Mar 16 Javascript
5秒后跳转效果(setInterval/SetTimeOut)
May 03 Javascript
JavaScript观察者模式(经典)
Dec 09 Javascript
浅析jQuery 3.0中的Data
Jun 14 Javascript
js选项卡的制作方法
Jan 23 Javascript
解决webpack打包速度慢的解决办法汇总
Jul 06 Javascript
es6学习之解构时应该注意的点
Aug 29 Javascript
关于redux-saga中take使用方法详解
Feb 27 Javascript
Angular 组件之间的交互的示例代码
Mar 24 Javascript
对angular4子路由&辅助路由详解
Oct 09 Javascript
使用react render props实现倒计时的示例代码
Dec 06 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
动态新闻发布的实现及其技巧
2006/10/09 PHP
Apache 配置详解(最好的APACHE配置教程)
2010/07/04 PHP
PHP面向对象程序设计模拟一般面向对象语言中的方法重载(overload)示例
2019/06/13 PHP
JS应用之禁止抓屏、复制、打印
2008/02/21 Javascript
Javascript学习笔记1 数据类型
2010/01/11 Javascript
jquery 实现表单验证功能代码(简洁)
2012/07/03 Javascript
extjs中form与grid交互数据(record)的方法
2013/08/29 Javascript
jquery检测input checked 控件是否被选中的方法
2014/03/26 Javascript
Node.js中require的工作原理浅析
2014/06/24 Javascript
jQuery学习笔记之jQuery+CSS3的浏览器兼容性
2015/01/19 Javascript
JS代码实现table数据分页效果
2016/05/26 Javascript
AngularJS 依赖注入详解及示例代码
2016/08/17 Javascript
jQuery遮罩层实例讲解
2017/05/11 jQuery
vue2.0 实现页面导航提示引导的方法
2018/03/13 Javascript
vue history 模式打包部署在域名的二级目录的配置指南
2019/07/02 Javascript
layui 选择列表,打勾,点击确定返回数据的例子
2019/09/02 Javascript
webgl实现物体描边效果的方法介绍
2019/11/27 Javascript
three.js 利用uv和ThreeBSP制作一个快递柜功能
2020/08/18 Javascript
python登录QQ邮箱发信的实现代码
2013/02/10 Python
python求素数示例分享
2014/02/16 Python
Python写的贪吃蛇游戏例子
2014/06/16 Python
python动态性强类型用法实例
2015/05/09 Python
python中logging库的使用总结
2017/10/18 Python
python logging模块的使用
2020/09/07 Python
python在地图上画比例的实例详解
2020/11/13 Python
用css3实现当鼠标移进去时当前亮其他变灰效果
2014/04/08 HTML / CSS
仿CSDN Blog返回页面顶部功能实现原理及代码
2013/06/30 HTML / CSS
英国高级百货公司:Harvey Nichols
2017/01/29 全球购物
珍珠奶茶店创业计划书
2014/01/11 职场文书
超级搞笑检讨书
2014/01/15 职场文书
职工运动会邀请函
2014/01/19 职场文书
通信研究生自荐信
2014/02/01 职场文书
汽车装潢店创业计划书范文
2014/02/05 职场文书
企业党的群众路线教育实践活动领导班子对照检查材料
2014/09/25 职场文书
幼师辞职信怎么写
2015/02/27 职场文书
MySQL约束(创建表时的各种条件说明)
2022/06/21 MySQL