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中的Screen屏幕对象
Jan 16 Javascript
jQuery Ajax方法调用 Asp.Net WebService 的详细实例代码
Apr 27 Javascript
JQuery中的html()、text()、val()区别示例介绍
Sep 01 Javascript
浅析JS获取url中的参数实例代码
Jun 14 Javascript
总结在前端排序中遇到的问题
Jul 19 Javascript
Google 地图API资料整理及详细介绍
Aug 06 Javascript
js仿微信抢红包功能
Sep 25 Javascript
基于vue+canvas的excel-like组件实例详解
Nov 28 Javascript
使用Angular CLI进行Build(构建)和Serve详解
Mar 24 Javascript
使用RN Animated做一个“添加购物车”动画的方法
Sep 12 Javascript
Angular ui-roter 和AngularJS 通过 ocLazyLoad 实现动态(懒)加载模块和依赖
Nov 25 Javascript
前端开发之便利店收银系统代码
Dec 27 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
phpBB BBcode处理的漏洞
2006/10/09 PHP
PHP中使用cURL实现Get和Post请求的方法
2013/03/13 PHP
jQuery中的RadioButton,input,CheckBox取值赋值实现代码
2014/02/18 PHP
PHP中实现接收多个name相同但Value不相同表单数据实例
2015/02/03 PHP
php使用Jpgraph绘制3D饼状图的方法
2015/06/10 PHP
PHP中串行化用法示例
2016/11/16 PHP
一键生成各种尺寸Icon的php脚本(实例)
2017/02/08 PHP
使用PHP+Redis实现延迟任务,实现自动取消订单功能
2019/11/21 PHP
根据分辨率不同,调用不同的css文件
2006/08/25 Javascript
多个iframe自动调整大小的问题
2006/09/18 Javascript
Jquery实现搜索框提示功能示例代码
2013/08/13 Javascript
JavaScript实现的链表数据结构实例
2015/04/02 Javascript
在javascript中创建对象的各种模式解析
2016/05/16 Javascript
Highcharts学习之数据列
2016/08/03 Javascript
简单分析javascript中的函数
2016/09/10 Javascript
Bootstrap实现的标签页内容切换显示效果示例
2017/05/25 Javascript
jQuery Position方法使用和兼容性
2017/08/23 jQuery
微信小程序基于本地缓存实现点赞功能的方法
2017/12/18 Javascript
react实现点击选中的li高亮的示例代码
2018/05/24 Javascript
微信实现自动跳转到用其他浏览器打开指定APP下载
2019/02/15 Javascript
原生javascript自定义input[type=radio]效果示例
2019/08/27 Javascript
基于Node的Axure文件在线预览的实现代码
2019/08/28 Javascript
python的id()函数解密过程
2012/12/25 Python
Python类的定义、继承及类对象使用方法简明教程
2015/05/08 Python
在Python中操作字典之update()方法的使用
2015/05/22 Python
在Django的session中使用User对象的方法
2015/07/23 Python
Python常用时间操作总结【取得当前时间、时间函数、应用等】
2017/05/11 Python
Android分包MultiDex策略详解
2017/10/30 Python
Python使用matplotlib实现绘制自定义图形功能示例
2018/01/18 Python
python MysqlDb模块安装及其使用详解
2018/02/23 Python
PyQt5组件读取参数的实例
2019/06/25 Python
python opencv 实现对图像边缘扩充
2020/01/19 Python
解决Firefox下不支持outerHTML问题代码分享
2014/06/04 HTML / CSS
小学生环保标语
2014/06/13 职场文书
自荐信格式范文
2015/03/04 职场文书
Win10鼠标宏怎么设置?win10系统鼠标宏的设置方法
2022/08/14 数码科技