我一直在尝试从页面 B 上运行的扩展程序向我自己的服务器 A 发出请求。如果我在 Chrome 上运行该扩展程序,一切都会顺利进行,但在 Firefox 上会失败并出现以下错误:
'Content-Security-Policy: The page’s settings blocked the loading of a resource at A (“connect-src”).'
扩展程序向 B 页面添加一个按钮,并尝试使用带有此代码的 fetch 向服务器 A 发出 PUT 请求
function sendData(body) {
fetch(`${API_URL}/request-help`, {
method: "PUT",
body: JSON.stringify(body),
headers: {
"Content-type": "application/json; charset=UTF-8"
}
})
.catch(error => {
console.error(error);
})
}
我已添加到清单中
"host_permissions": ["<all_urls>"],
尝试添加CSP
"content_security_policy": {
"extension_pages": "script-src 'self' 'unsafe-eval'; connect-src *; style-src * 'unsafe-inline' 'self' "
}
我遵循了 @xOxxOm 的建议,并将 fetch 调用移至后台服务,现在一切似乎都正常。我想避免这样做,但从代码架构的角度来看,我实际上很喜欢它。