【发布时间】:2019-01-23 11:53:58
【问题描述】:
我已将我知道的所有标头设置为在我的服务器上禁用缓存(甚至禁用 ETAG),但 Safari 仍然偶尔(大约 50% 次)缓存我的请求。
工作流程
我正在实施 oauth 1,所以:
-
浏览器发出
GET /api/user请求 -
服务器返回 405
-
浏览器重定向到第三方网站进行身份验证
-
浏览器被重定向到
api/callback,它将一些信息存储到cookie中。 -
浏览器被重定向回原来的路由。
-
浏览器发出
GET /api/user请求,这应该是成功的,但是它从磁盘缓存中获得了 405 服务。
来自 Safari Network Inspector 的请求摘要
总结
网址:http://localhost:3000/api/user
状态: 405 Method Not Allowed
来源:Disk Cache
请求
无请求,由磁盘缓存提供服务。
响应
传输编码: Identity
内容类型: application/json; charset=utf-8
编译指示: no-cache
缓存控制: private, no-cache, no-store, must-revalidate, max-age=0
变化: Cookie, Accept-Encoding
日期:Wed, 23 Jan 2019 11:34:23 GMT
内容编码: gzip
过期: Thu, 01 Dec 1994 16:00:00 GMT
连接: close
x-powered-by: Express
结论
我不知道出了什么问题,我将非常感谢任何帮助。我的
Safari 版本是12.0.2。我无法使用 Chrome 重现此问题。
【问题讨论】: