Firefox 扩展请求被解释为 CORS
Posted
技术标签:
【中文标题】Firefox 扩展请求被解释为 CORS【英文标题】:Firefox extension request is interpreted as CORS 【发布时间】:2018-08-11 01:36:26 【问题描述】:将我的 Chrome 扩展程序移植到 Firefox 网络扩展程序时,我无法发出任何网络请求,因为它们被同源策略阻止。
举个例子:
const headers = "content-type": "application/json" ;
window.fetch(myDomain + "/api/v3/token", method: "GET", headers: headers );
这会失败并出现以下错误:
有没有办法将 Firefox 扩展配置为不考虑这些请求 CORS?相同的代码可以作为 Google Chrome 扩展程序正常工作。
即使请求转到本地主机也是如此。
我已经尝试使用 jquery 的 $.ajax
方法和 axios 库来获得相同的结果(在 Chrome 中有效,在 Firefox 中无效)所以我认为问题不限于 window.fetch
API。
编辑:我知道我可以在服务器端添加一个 CORS 处理程序,但我试图不这样做。为什么这在 Chrome 中有效,而在 Firefox 中无效?
编辑 2:扩展是一个弹出窗口
【问题讨论】:
Firefox 中的 WebExtensions API 即使在核心部分仍然存在许多错误,所以也许这是另一个错误。 在 Firefox Scratchpad 中执行相同操作时是否有效(在 Firefox 中为 Shift+F4)? 【参考方案1】:这在此处记录: https://developer.mozilla.org/en-US/Add-ons/WebExtensions/manifest.json/permissions#Host_permissions
简而言之,默认情况下您需要为 localhost 添加一个主机权限来处理同源请求。我不知道为什么谷歌浏览器会以不同的方式处理这个问题。
【讨论】:
添加什么到哪里如何?以上是关于Firefox 扩展请求被解释为 CORS的主要内容,如果未能解决你的问题,请参考以下文章
VivaldiFox扩展:让Firefox获得动态UI颜色功能