作项目的时候,遇到一个小的问题.一个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