用URL传值的浏览器最大长度限制

您所在的位置:网站首页 router传参有大小限制 用URL传值的浏览器最大长度限制

用URL传值的浏览器最大长度限制

2024-05-30 00:30| 来源: 网络整理| 查看: 265

用URL传值的浏览器最大长度限制

1:问题描述:画面上是有一个table,table上表示了有很多文件的。用户可以操作选择表格中一条,或者多条,然后点击画面上的一个下载button。

   如果是分别一条一条的下载没有问题,用firefox一次下载多条也没有问题;但是如果用IE9的一次性下载多条的话,就会出错。

 

2:原因:经过调查发现是从当前页面网download画面传值的时候,所有的文件名都是用URL传递的,用submit方法一次提交到后台。

   所以考虑是不是因为URL长度不够,上网调查之后,下面是一位同学调查的结果,直接拿过来用。还有网友说是URL的长度是由浏览器和web服务器

   共同限定的。

   Microsoft Internet Explorer (Browser)    IE浏览器对URL的最大限制为2083个字符,如果超过这个数字,提交按钮没有任何反应。

   Firefox (Browser)    对于Firefox浏览器URL的长度限制为65,536个字符,但当我测试时,最大只能处理8182个字符,这是因为url的长度除了浏览器限制外,还会受Web服务器的限制。

   Safari (Browser)    URL最大长度限制为 80,000个字符。

   Opera (Browser)    URL最大长度限制为190,000个字符。

   Google (chrome)    url长度一旦超过8182个字符时。

 

3:解决方法: 用submit的post方法,然后根据传递的值,动态的添加hidden元素。把传递参数的值赋给hidden。

   因为是用post请求的话,hidden的值是存放在header中。而不是通过url传递的。post请求传递的长度只和web服务器有关,和浏览器无关。

4:下面是添加和删除画面元素的代码,仅供参考

   添加:

   var input = document.createElement( 'input' );

   input.setAttribute( 'type' , 'hidden' );    input.setAttribute( 'name' , '参数名' )

   input.setAttribute( 'value' , ‘参数值’ );

   form.appendChild( input );

   删除:

   var inputAry = document.getElementsByName("selectFiles");    var inputCnt = inputAry.length;    if (inputCnt > 0){        for (var i=0; i



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3