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 相关文章推荐
jquery keypress,keyup,onpropertychange键盘事件
Jun 25 Javascript
jquery 如何动态添加、删除class样式方法介绍
Nov 07 Javascript
关于Javascript与iframe的那些事儿
Jul 04 Javascript
jquery 清空file域示例(兼容个浏览器)
Oct 11 Javascript
js数组常用操作方法小结(增加,删除,合并,分割等)
Aug 02 Javascript
jQuery中的on与bind绑定事件区别实例详解
Feb 28 Javascript
js实现动态显示时间效果
Mar 06 Javascript
详谈js使用in和hasOwnProperty获取对象属性的区别
Apr 25 Javascript
Angular.JS中select下拉框设置value的方法
Jun 20 Javascript
JS+WCF实现进度条实时监测数据加载量的方法详解
Dec 19 Javascript
基于jQuery.i18n实现web前端的国际化
May 04 jQuery
小程序外卖订单界面的示例代码
Dec 30 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中exec函数和shell_exec函数的区别
2014/08/20 PHP
destoon实现VIP排名一直在前面排序的方法
2014/08/21 PHP
深入解析PHP的Yii框架中的event事件机制
2016/03/17 PHP
Ubuntu 16.04下安装PHP 7过程详解
2017/03/28 PHP
PHP中的self关键字详解
2019/06/23 PHP
PHP解决高并发的优化方案实例
2020/12/10 PHP
JavaScript语句可以不以;结尾的烦恼
2007/03/08 Javascript
JS+XML 省份和城市之间的联动实现代码
2009/10/14 Javascript
javascript 按键事件(兼容各浏览器)
2013/12/20 Javascript
使用jquery+CSS实现控制打印样式
2014/12/31 Javascript
深入理解JavaScript系列(46):代码复用模式(推荐篇)详解
2015/03/04 Javascript
JS动态改变表格边框宽度的方法
2015/03/31 Javascript
CascadeView级联组件实现思路详解(分离思想和单链表)
2016/04/12 Javascript
JS之获取样式的简单实现方法(推荐)
2016/09/13 Javascript
简单实现jQuery上传图片显示预览功能
2020/06/29 jQuery
Bootstrap table使用方法汇总
2017/11/17 Javascript
推荐10款扩展Web表单的JS插件
2017/12/25 Javascript
web3.js增加eth.getRawTransactionByHash(txhash)方法步骤
2018/03/15 Javascript
Python3连接MySQL(pymysql)模拟转账实现代码
2016/05/24 Python
Python数据分析之如何利用pandas查询数据示例代码
2017/09/01 Python
获取python运行输出的数据并解析存为dataFrame实例
2020/07/07 Python
美国在线自行车商店:Jenson USA
2018/05/22 全球购物
韩国最大的购物网站:Gmarket
2019/06/20 全球购物
美国豪华的多品牌精品店:The Webster
2019/07/31 全球购物
工厂厂长岗位职责
2013/11/08 职场文书
优秀员工年终发言演讲稿
2014/01/01 职场文书
给儿子的表扬信
2014/01/15 职场文书
小加工厂管理制度
2014/01/21 职场文书
《哪吒闹海》教学反思
2014/02/28 职场文书
机工车间主任岗位职责
2014/03/05 职场文书
股权转让协议书
2014/12/07 职场文书
工作年限证明模板
2015/06/15 职场文书
2016年百日安全生产活动总结
2016/04/06 职场文书
对Golang中的FORM相关字段理解
2021/05/02 Golang
MySQL 覆盖索引的优点
2021/05/19 MySQL
Lombok的详细使用及优缺点总结
2021/07/15 Java/Android