IE浏览器会缓存GET请求
起因
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接口(不推荐)
相关推荐
simonzhao0 2020-07-05
snowfoxmonitor 2020-06-21
lengyu0 2020-06-01
84549234 2020-05-12
程序员俱乐部 2020-05-09
curiousL 2020-02-02
baynkbtg 2020-01-14
yanglinjingshu 2015-05-02
程序员俱乐部 2019-12-18
zebperfect 2013-09-05
Awara 2016-04-30
zhanghaibing00 2018-01-13
zyhui 2018-01-13
eboyhaining 2019-06-04
ilzxxx0 2019-05-05
zhangpuego 2018-04-12
cooldgjk 2017-09-26
85266438 2017-09-03
回忆的夏天 2013-06-28