萬盛學電腦網

 萬盛學電腦網 >> 腳本專題 >> javascript >> window.location.href中url中數據量太大時的解決方法

window.location.href中url中數據量太大時的解決方法

 這篇文章主要為大家介紹下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);     });    
copyright © 萬盛學電腦網 all rights reserved