這篇文章主要為大家介紹下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); });