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 相关文章推荐
JS 修改URL参数(实现代码)
Jul 08 Javascript
JS获取当前脚本文件的绝对路径
Mar 02 Javascript
原生JS:Date对象全面解析
Sep 06 Javascript
jquery-mobile表单的创建方法详解
Nov 23 Javascript
vue.js指令v-model使用方法
Mar 20 Javascript
JQuery EasyUI 结合ztrIee的后台页面开发实例
Sep 01 jQuery
jquery实现回车键触发事件(实例讲解)
Nov 21 jQuery
在小程序中集成redux/immutable/thunk第三方库的方法
Aug 12 Javascript
Vue开发实现吸顶效果的示例代码
Aug 21 Javascript
JS闭包经典实例详解
Dec 20 Javascript
js 递归json树实现根据子id查父id的方法分析
Nov 08 Javascript
Vue中多元素过渡特效的解决方案
Feb 05 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数组函数序列之array_unshift() 在数组开头插入一个或多个元素
2011/11/07 PHP
Php output buffering缓存及程序缓存深入解析
2013/07/15 PHP
详解js异步文件加载器
2016/01/24 PHP
搜索附近的人PHP实现代码
2018/02/11 PHP
ThinkPHP防止重复提交表单的方法实例分析
2018/05/10 PHP
php中array_fill函数的实例用法
2021/03/02 PHP
js 异步处理进度条
2010/04/01 Javascript
基于jquery的滑动样例代码
2010/11/20 Javascript
Javascript 检测键盘按键信息及键码值对应介绍
2013/01/03 Javascript
jQuery实现滑动页面固定顶部显示(可根据显示位置消失与替换)
2015/10/28 Javascript
详解javascript函数的参数
2015/11/10 Javascript
js实现div在页面拖动效果
2016/05/04 Javascript
JS仿百度自动下拉框模糊匹配提示
2016/07/25 Javascript
AngularJS在IE下取数据总是缓存问题的解决方法
2016/08/05 Javascript
canvas实现环形进度条效果
2017/03/23 Javascript
MUI 解决动态列表页图片懒加载再次加载不成功的bug问题
2017/04/13 Javascript
Angular 4.x中表单Reactive Forms详解
2017/04/25 Javascript
JS中Object对象的原型概念基础
2018/01/29 Javascript
jQuery实现下拉菜单动态添加数据点击滑出收起其他功能
2018/06/14 jQuery
Vue-cli@3.0 插件系统简析
2018/09/05 Javascript
js如何实现元素曝光上报
2019/08/07 Javascript
vue 项目打包时样式及背景图片路径找不到的解决方式
2019/11/12 Javascript
深入理解Javascript中的this关键字
2015/03/27 Python
python使用xlrd模块读写Excel文件的方法
2015/05/06 Python
在SAE上部署Python的Django框架的一些问题汇总
2015/05/30 Python
python将字符串转换成json的方法小结
2019/07/09 Python
Django框架 查询Extra功能实现解析
2019/09/04 Python
python并发爬虫实用工具tomorrow实用解析
2019/09/25 Python
python 多进程队列数据处理详解
2019/12/23 Python
tensorflow实现测试时读取任意指定的check point的网络参数
2020/01/21 Python
详解Canvas事件绑定
2018/06/27 HTML / CSS
用HTML5中的Canvas结合公式绘制粒子运动的教程
2015/05/08 HTML / CSS
SmartBuyGlasses中国:唯视良品(销售名牌太阳镜、墨镜和眼镜框)
2017/07/03 全球购物
歌咏比赛主持词
2015/06/29 职场文书
Golang实现AES对称加密的过程详解
2021/05/20 Golang
win10双系统怎么删除一个系统?win10电脑有两个系统删除一个的操作方法
2022/07/15 数码科技