Firefox 错误:尝试仅从扩展程序获取资源时出现网络错误

ith*_*han 5 javascript firefox firefox-addon fetch

我目前正在开发 Firefox/chrome 的扩展,需要从另一个网站获取一些数据。

该扩展似乎在 Chrome 中运行良好,但是,在尝试从 Firefox 中尝试该扩展时,我收到“尝试获取资源时出现网络错误”。

如果我从控制台执行代码,它工作得很好,问题仅来自扩展。

服务器上启用了 CORS,您知道问题的根源是什么吗?

服务端相关代码:

router.use(function(req, res, next) {
  res.header("Access-Control-Allow-Origin", "*");
  res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
  if (req.headers.authorization !== '***') {
      return res.status(403).json({ error: 'Unauthorized request' });
  }
  next();
});
Run Code Online (Sandbox Code Playgroud)

客户端相关代码:

fetch('https://host:port/api/somepath', {
    headers: new Headers({
        Authorization: '*****',
    }),
})
.then(....
Run Code Online (Sandbox Code Playgroud)

火狐浏览器错误:

错误:类型错误:尝试获取资源时出现网络错误

扩展清单权限:

"permissions": ["storage", "activeTab", "declarativeContent","webRequest", "webRequestBlocking", "webNavigation"],
Run Code Online (Sandbox Code Playgroud)

leg*_*ett 5

"<all_urls>"权限允许您访问某人访问的每个网站,这是多余的。您需要为 Firefox 添加的只是您尝试在获取中调用的 URL(例如,"https://host:port/api/somepath"在您的示例中)

生成的扩展清单权限:

"permissions": [
  "storage", 
  "activeTab", 
  "declarativeContent",
  "webRequest", 
  "webRequestBlocking", 
  "webNavigation",
  "https://host:port/api/somepath"
],
Run Code Online (Sandbox Code Playgroud)