用URL传值的浏览器最大长度限制
用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<inputCnt; i++) {
???????? form.removeChild(inputAry[0]);
???????? }
??? }
總結
以上是生活随笔為你收集整理的用URL传值的浏览器最大长度限制的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数据可视化工具软件哪个最好
- 下一篇: python 网格搜索_网格搜索查找AU