首頁 >web前端 >js教程 >window.location.href中url中資料量太大時的解決方法_javascript技巧

window.location.href中url中資料量太大時的解決方法_javascript技巧

WBOY
WBOY原創
2016-05-16 17:07:421442瀏覽

先說一下今天遇到的問題

一個導出excel的處理,按鈕按下後需要傳很大一個資料到後台,剛開始的做法如下:

複製程式碼 程式碼如下:

var actionUrlSetData = "****Action!exportDatas. action" "?now=" new Date().getTime();
window.location.href= actionUrl "&" data;

上面的data就是一個很長的字串。

這樣在火狐和Google瀏覽器都是沒有問題的,但是在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(mapList)
        var actionUrl = path "/***action!exportDatas.action" "?now=" new Date().getTime();
      🎜>    });

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn