起因
IE浏览器会缓存网页中的GET和XHR的内容,请求方式是get方式时,IE浏览器会进行识别。如果该get请求的url是第一次请求的话,会请求服务器,从数据库中获取数据;如果该get请求的url不是第一次请求的话,那么该url就不会请求服务器,IE浏览器会直接从缓存中拿到上次该url获取的数据。无论是什么插件的get方式请求,IE浏览器都会这样进行处理的,从而导致数据不同步。
解决方案
1. 在get请求的url中增加随机标识(推荐)
在请求后拼接随机数或者时间戳,使两次请求的url不一致,浏览器就不会从缓存中读取数据
2. 在axios中设置header,ajax可以用setRequestHeader方法(推荐)
const api = axios.create({
// ...
headers: {
'Cache-Control': 'no-cache'
}
// ...
})
3. 修改浏览器配置 (只能暂时解决问题)
Internet选项 >> 浏览历史记录 >> 设置 >> Internet 临时文件的选项改为‘每次访问网页时’
4. 在服务端设置 header(“Cache-Control: no-cache, must-revalidate”)(看情况)
5. 改为post接口(不推荐)
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。