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 相关文章推荐
纯CSS打造的导航菜单(附jquery版)
Aug 07 Javascript
JavaScript.The.Good.Parts阅读笔记(二)作用域&闭包&减缓全局空间污染
Nov 16 Javascript
javascript中检测变量的类型的代码
Dec 28 Javascript
js获取判断上传文件后缀名的示例代码
Feb 19 Javascript
js在IE与firefox的差异集锦
Nov 11 Javascript
深入理解JavaScript系列(34):设计模式之命令模式详解
Mar 03 Javascript
JavaScript实现的encode64加密算法实例分析
Apr 15 Javascript
jquery datatable服务端分页
Aug 31 Javascript
Bootstrap select下拉联动(jQuery cxselect)
Jan 04 Javascript
详解vue-cli中配置sass
Jun 21 Javascript
jquery+css实现简单的图片轮播效果
Aug 07 jQuery
js实现移动端图片滑块验证功能
Sep 29 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字符串的连接的简单实例
2013/12/30 PHP
PHP采用自定义函数实现遍历目录下所有文件的方法
2014/08/19 PHP
PHP判断JSON对象是否存在的方法(推荐)
2016/07/06 PHP
php 数组处理函数extract详解及实例代码
2016/11/23 PHP
全面解析PHP面向对象的三大特征
2017/06/10 PHP
laravel框架select2多选插件初始化默认选中项操作示例
2020/02/18 PHP
详解phpstorm2020最新破解方法
2020/09/17 PHP
js以对象为索引的关联数组
2010/07/04 Javascript
一行代码告别document.getElementById
2012/06/01 Javascript
基于jQuery.Validate验证库知识点的详解
2013/04/26 Javascript
node.js中的fs.symlink方法使用说明
2014/12/15 Javascript
jQuery实现tag便签去重效果的方法
2015/01/20 Javascript
微信小程序 地图map详解及简单实例
2017/01/10 Javascript
JavaScript实现图片拖曳效果
2017/09/08 Javascript
js中getBoundingClientRect的作用及兼容方案详解
2018/02/01 Javascript
微信小程序实现默认第一个选中变色效果
2018/07/17 Javascript
element UI upload组件上传附件格式限制方法
2018/09/04 Javascript
vue设置导航栏、侧边栏为公共页面的例子
2019/11/01 Javascript
微信小程序实现拨打电话功能的示例代码
2020/06/28 Javascript
vue实现广告栏上下滚动效果
2020/11/26 Vue.js
vue实现购物车的小练习
2020/12/21 Vue.js
[04:15]DOTA2-DPC中国联赛 正赛 Ehome vs Aster 选手采访
2021/03/11 DOTA
Python正则表达式使用范例分享
2016/12/04 Python
图解Python变量与赋值
2018/04/03 Python
python散点图实例之随机漫步
2018/08/27 Python
python 循环读取txt文档 并转换成csv的方法
2018/10/26 Python
PyQt5根据控件Id获取控件对象的方法
2019/06/25 Python
ERLANG和PYTHON互通实现过程详解
2019/07/05 Python
Django Haystack 全文检索与关键词高亮的实现
2020/02/17 Python
使用BeautifulSoup4解析XML的方法小结
2020/12/07 Python
利用CSS3实现毛玻璃效果示例源码
2016/09/25 HTML / CSS
Superdry极度乾燥官网:日本街头风格,纯英国制造品牌
2016/10/31 全球购物
澳大利亚领先的女性运动服品牌:Lorna Jane
2020/06/19 全球购物
《谁的本领大》教后反思
2014/04/25 职场文书
小学生作文批改评语
2014/12/25 职场文书
2019经典广告词集锦!
2019/07/02 职场文书