作項目的時候,遇到一個小的問題.一個get請求列表數據的接口,在其它瀏覽器上是能夠正常請求的.可是在ie瀏覽器上確出現奇怪的http請求400錯誤,其含義是你訪問的頁面域名不存在或者請求錯誤,本身的本地,確定沒問題.那就是請求錯誤了.幾經嘗試發現是參數帶中文的會出現此種狀況,沒帶中文的沒有問題.
如圖(不帶中文的參數返回的內容):
javascript
如圖(帶中文的參數):
以上能夠發現,若是傳參是中文的接口,返回是400,其他的參數均可以正常請求。
解決方法:將傳遞的參數進行編碼,而後傳遞給後臺,js編碼encodeURI(中文參數),java
//獲取菜單列表數據 getMenulist: function() { let that = this; //兼容IE瀏覽器相同接口,有緩存,須要添加時間戳 let time=new Date().getTime(); //兼容IE瀏覽器傳遞中文,解碼後能夠正常請求 let name = encodeURI(that.menuName); that.axios.get(api + '/sysmenutree/select2?treename=' +name+'&time='+time).then(function(response) { var flag = response.data.flag; var data = JSON.parse(response.data.data); if(flag == 'true') { that.menuData = data; }else { that.menuData = []; that.$message.error(response.data.mes); } }).catch(function(error) { console.log(error); }) },
就能夠解決傳遞中文參數,在IE瀏覽器沒有反應的問題了。
ios