Firefox 在 CORS 资源上失败,而 Chrome 和 Safari 工作

Posted

技术标签:

【中文标题】Firefox 在 CORS 资源上失败,而 Chrome 和 Safari 工作【英文标题】:Firefox fails on CORS resource, while Chrome and Safari work 【发布时间】:2019-07-04 05:13:07 【问题描述】:

我有一个由 CouchDB 安装支持的看似正确的资源。使用 JS Axios 发出请求。 Chrome 和 Safari 都可以工作,但是 Firefox 65.0 失败了

CORS header 'Access-Control-Allow-Origin' does not match 'http://localhost:8080, *'

事实上,服务器 (CouchDB) 不提供服务

 'http://localhost:8080, *' as Access-Control-Allow-Origin 

但是

 Access-Control-Allow-Origin http://localhost:8080
 Access-Control-Expose-Headers content-type, cache-control, a…e-newrev, x-couchdb-body-time

由于其配置 CORS 接受来自所有域 ('*') 的请求。

如前所述,这完全适用于其他浏览器。但对于 Firefox 失败。我似乎真的找不到原因。一个解决方案,并一直想知道额外的“*”是从哪里来的,Firefox 想看到。

【问题讨论】:

这似乎与***.com/questions/54592828/… 中描述的问题相同。似乎它必须是Firefox中的一些错误。 (可能是 Firefox 65 中引入的错误?)要么是这个,要么是你安装了导致它的扩展。您是否尝试过关闭扩展进行测试? 另一个建议:在 Firefox 中创建一个干净的配置文件,看看您是否可以使用该配置文件重现问题。 【参考方案1】:

@sideshowbarker 感谢您的提示 - 实际上,该行为是由于扩展引起的 - 即这个 https://addons.mozilla.org/en-US/firefox/addon/cross-domain-cors/ 在禁用此扩展后按预期工作!

【讨论】:

以上是关于Firefox 在 CORS 资源上失败,而 Chrome 和 Safari 工作的主要内容,如果未能解决你的问题,请参考以下文章

FireFox的Angularjs CORS失败

Spring CORS 仅在某些资源上失败

CORS 预检在 Firefox 中失败,但在 Chrome for Apache CXF 中有效

如何在 Firefox 上启用 CORS

跨域资源共享的问题:预检请求后 OSX Safari 和 iOS Safari 均失败

Amazon S3 CORS(跨域资源共享)和 Firefox 跨域字体加载