https://www.cnblogs.com/zhang55qwe/p/5559108.html
我的情况
使用$.get()方式请求,请求参数中有中文,catch中的statusText返回"No Transport",请求路径中的中文乱码。
原因
1. 在IE下用Ajax请求某一页面,通常会因为缓存的原因而返回上一次的结果,造成混乱。即get方式时,获取数据,因发送参数和地址都一致,故IE浏览器会从缓存中取,而不会去请求服务器端
2. 浏览器在传递url的时候,会使用自己的编码格式对地址进行编码,如果浏览器所使用编码与服务器采用编码不一致,服务器接收到的参数就会出现乱码
缓存问题解决
方法1:在Ajax请求的页面后加个随机函数,比如当前时间戳
方法2:在js开始的地方,加上以下代码,就不用每个接口都去加随机数
$.ajaxSetup({cache:false})
"No Transport" 问题解决
在调用Ajax方法之前加上以下代码
jQuery.support.cors = true;
中文乱码问题解决
使用js encodeURI 对地址进行统一编码,如下
var url = encodeURI("article/detail?title=我是中文");