【发布时间】:2022-11-01 14:01:08
【问题描述】:
我目前正在从 Manifest v2 迁移到 Manifest v3 以获得 chrome 扩展。我的扩展使用通过 HTTPS 提供的公共 API。我使用该 API 的本地实例来测试在https://0.0.0.0:8080/ 提供的扩展。但是,由于我无法理解的原因,我的扩展无法从该 URL 获取任何内容。并且服务人员日志上显示的错误是
类型错误:获取失败
如果我将本地 API 切换为在
http://0.0.0.0:8080/上提供服务,则扩展程序可以正常工作。所以基本上,除了 Manifest v3 上的https://0.0.0.0:8080/之外,该扩展程序适用于所有 API URL。我尝试切换回 Manifest v2 并且它起作用了,所以我不确定为什么它在 v3 上不起作用。我的清单文件看起来像这样
{ "name": "...", "description": "...", "manifest_version": 3, "version": "1.0.0", "icons": { "16": "icon16.png", "48": "icon48.png", "128": "icon128.png" }, "action": { "default_icon": { "16": "icon16.png", "48": "icon48.png" }, "default_title": "..." }, "background": { "service_worker": "background.js" }, "content_scripts": [ { "matches": ["http://*/*", "https://*/*"], "js": ["content.js"], "css": ["App.scss"] } ], "permissions": ["storage"], "host_permissions": ["http://*/*", "https://*/*", "*://*/*"], "web_accessible_resources": [ { "resources": ["App.css"], "matches": ["http://*/*", "https://*/*"] } ] }
【问题讨论】:
-
尝试将
https://0.0.0.0:8080/添加到 host_permissions 并重新加载扩展。也许应该为 https 明确指定端口,这可能是 Chrome 中的一个错误。 FWIW,0.0.0.0 是无效 IP。 -
那没有用。添加主机权限对问题没有影响。
标签: google-chrome-extension chrome-extension-manifest-v3