预检 CORS 请求在 Chrome 60 中不起作用

Posted

技术标签:

【中文标题】预检 CORS 请求在 Chrome 60 中不起作用【英文标题】:Preflight CORS request not working in Chrome 60 【发布时间】:2018-02-15 00:18:45 【问题描述】:

我遇到了一个小问题,Chrome(版本 60.0.3112.113,Mac OS)从 CORS 预检 OPTIONS 请求返回失败的状态响应。

它正在查询的端点是一个 以前 没有正确响应预检请求的 nodejs 服务器。我已经解决了这个问题。

预检请求适用于所有其他浏览器,并且适用于所有其他计算机上的 Chrome。我已经使用Browserling 进行了测试,一切正常。

因此,我假设(有 99% 的信心)这是我的开发计算机上的 Chrome 的某种缓存问题。然而,我无法解决这个问题,此时我尝试删除我可以在各种 Chrome 选项菜单中找到的任何/所有缓存选项。

任何人都可以分享任何见解吗?

【问题讨论】:

【参考方案1】:

我找不到清除 Chrome 在这方面使用的任何内部缓存的方法。

我的解决方案只是在请求中附加一个查询字符串(基于构建时间),这样 Chrome 就不会使用这个内部缓存。

无论如何,这都是一种对资源(JS、CSS、API 端点等)进行版本控制的好方法。

【讨论】:

以上是关于预检 CORS 请求在 Chrome 60 中不起作用的主要内容,如果未能解决你的问题,请参考以下文章

为啥经过身份验证的 CORS 请求的预检 OPTIONS 请求在 Chrome 中有效,但在 Firefox 中无效?

Chrome中的慢速cors预检选项请求[关闭]

CORS 预检请求返回“403 Forbidden”;随后的请求,然后仅在 Chrome 中发送

如何在不调用 Chrome 的 CORS 预检请求的情况下指定 `application/json` Content-Type?

Apollo graphQL 客户端中的 CORS 异常“Access-Control-Allow-Headers 在预检响应中不允许请求标头字段内容类型”

CORS 在 Firefox 中不起作用