IE瀏覽器http請求,中文傳參報400錯誤-解決方法 原

做項目的時候,遇到一個小的問題.一個get請求列表數據的接口,在其它瀏覽器上是可以正常請求的.但是在ie瀏覽器上確出現奇怪的http請求400錯誤,其含義是你訪問的頁面域名不存在或者請求錯誤,自己的本地,肯定沒問題.那就是請求錯誤了.幾經嘗試發現是參數帶中文的會出現此種情況,沒帶中文的沒有問題.
如圖(不帶中文的參數返回的內容):

如圖(帶中文的參數):

以上可以發現,如果傳參是中文的接口,返回是400,其餘的參數都可以正常請求。
解決方法:將傳遞的參數進行編碼,然後傳遞給後臺,js編碼encodeURI(中文參數),

 //獲取菜單列表數據
            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瀏覽器沒有反應的問題了。
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章