火狐浏览器扩展出现CORS错误但Chrome运行正常,遗漏了什么配置?
问题核心
火狐浏览器对扩展跨域请求的权限校验规则比Chrome更严格,你当前的配置未声明目标站点的访问权限,导致跨域被拦截。
修复方案
根据你使用的Manifest版本选择对应配置修改方式:
1. Manifest V2版本
直接在permissions数组中添加谷歌学术的域名匹配规则即可,修改后配置如下:
"permissions": [ "identity", "cookies", "tabs", "storage", "http://localhost/", "https://scholar.google.com/*" ]
如果有其他需要跨域访问的站点,按照协议://域名/*的格式添加对应匹配规则即可。
2. Manifest V3版本
Manifest V3已将主机访问权限单独拆分到host_permissions字段,火狐不支持将主机权限写在默认的permissions数组中(Chrome存在兼容逻辑所以之前可以正常运行),需要新增host_permissions配置项:
"permissions": [ "identity", "cookies", "tabs", "storage" ], "host_permissions": [ "http://localhost/", "https://scholar.google.com/*" ]
注意事项
- 若需要匹配同根域名下的所有子站,可以使用通配符,例如
"https://*.google.com/*"可覆盖所有谷歌系站点 - 修改配置后需要重新加载扩展,新的权限规则才会生效
内容的提问来源于stack exchange,提问作者Michael
相关产品推荐
相关产品推荐

