window.location.href中url中数据量太大时的解决方法

 更新时间:2013年12月23日 22:42:18   作者:  
这篇文章主要为大家介绍下window.location.href中url中数据量太大时的解决方法,需要的朋友可以参考下

先说一下今天遇到的问题

一个导出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);
    });

相关文章

  • 使用JS画图之点、线、面

    使用JS画图之点、线、面

    这篇文章主要介绍了使用js绘制几何图形的基础,绘制点、线、面,需要的朋友可以参考下
    2015-01-01
  • JS不完全国际化&本地化手册 之 理论篇

    JS不完全国际化&本地化手册 之 理论篇

    最近加入到新项目组负责前端技术预研和选型,其中涉及到一个熟悉又陌生的需求——国际化&本地化。熟悉的是之前的项目也玩过,陌生的是之前的实现仅仅停留在"有"的阶段而已。趁着这个机会好好学习整理一下,为后面的技术选型做准备
    2016-09-09
  • JavaScript判断是否是微信浏览器

    JavaScript判断是否是微信浏览器

    通过判断UA中是否有关键字micromessenger,有的话则是微信内置浏览器。下面小编给大家分享实现代码,代码简单易懂,需要的朋友可以参考下
    2016-06-06
  • 微信小程序加载机制及运行机制图解

    微信小程序加载机制及运行机制图解

    这篇文章主要介绍了微信小程序加载机制及运行机制图解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-11-11
  • JavaScript屏蔽指定区域内右键菜单

    JavaScript屏蔽指定区域内右键菜单

    有时候需要屏蔽部分区域内的右键菜单,下面的代码大家可以测试下。
    2010-03-03
  • JavaScript判断变量是否为undefined的两种写法区别

    JavaScript判断变量是否为undefined的两种写法区别

    这篇文章主要是对JavaScript判断变量是否为undefined的两种写法区别进行了详细的介绍,需要的朋友可以过来参考下,希望对大家有所帮助
    2013-12-12
  • 前端实现(excel)xlsx文件预览的详细步骤

    前端实现(excel)xlsx文件预览的详细步骤

    excel的预览库有不少,也都很强大,但是能很简单实现,下面这篇文章主要给大家介绍了关于前端实现(excel)xlsx文件预览的详细步骤,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-03-03
  • ajax跨域调用webservice的实现代码

    ajax跨域调用webservice的实现代码

    这篇文章主要介绍了 ajax跨域调用webservice服务例子和理解,最近ajax访问webservice遇到跨域的问题,网上搜索资料,总结如下
    2016-05-05
  • JS遍历JSON数组及获取JSON数组长度操作示例【测试可用】

    JS遍历JSON数组及获取JSON数组长度操作示例【测试可用】

    这篇文章主要介绍了JS遍历JSON数组及获取JSON数组长度操作,涉及javascript简单json数组遍历与运算相关操作技巧,需要的朋友可以参考下
    2018-12-12
  • JS实现文本比较差异的示例代码

    JS实现文本比较差异的示例代码

    内部系统上线了一个发版记录发版内容的功能,维护发版记录的同事提出一个可以展示前后文本差异的优化需求, 使的每次变更前可以确认新增了哪些,或者删除了哪些内容,所以本文给大家介绍了基于JS实现文本比较差异,需要的朋友可以参考下
    2023-12-12

最新评论