为什么后端接口设置了cache-control:no-cache ,请求还是会命中强缓存
为什么后端接口设置了cache-control:no-cache ,请求还是会命中强缓存
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
为什么后端接口设置了cache-control:no-cache ,请求还是会命中强缓存
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(4)
当你单页应用被重新载入过的话,此时再点浏览器的后退按钮,页面发的请求会无视no-cache的设置,
比如你在a.com,然后在地址栏输入www.baidu.com,此时点浏览器的后退按钮回退到a.com页面,你会发现页面中设置了no-cache的接口也还是从缓存读取了
stackOverFlow上有关于这个问题的讨论还是挺深入的
解决方案有两种
1 后端将cache-control 的值设置为"Cache-Control" = "no-cache, no-store, max-age=0, must-revalidate";
2 前端切路由的时候别重新reload的整个页面
你这种情况可能是你服务器端的文件已经更新了,
既然返回了状态200,就说明你服务器端的文件已经更新了。
如果服务器端文件没更新,那会返回304状态码,然后加载本地cache的。
作为小白的我,也奇怪这个问题?
如果你用的是nginx,建议同时增加三个header
有时光是no-cache不够的,Cache-Control 参数的解释: