Google chrome extension Chrome扩展XMLHttpRequest:内容安全策略指令

Google chrome extension Chrome扩展XMLHttpRequest:内容安全策略指令,google-chrome-extension,Google Chrome Extension,我正在尝试从我的Chrome扩展背景页面中的网站访问数据。然而,我不断地得到一个错误 我打包了扩展并通过拖放方式安装到chrome://extensions. 它确实要求我允许查看所有网站 舱单: "permissions": ["webNavigation", "tabs", "*://*/*", "http://www.google.com/"], Background.js: chrome.browserAction.onClicked.addListener(function(tab)

我正在尝试从我的Chrome扩展背景页面中的网站访问数据。然而,我不断地得到一个错误

我打包了扩展并通过拖放方式安装到chrome://extensions. 它确实要求我允许查看所有网站

舱单:

"permissions": ["webNavigation", "tabs", "*://*/*", "http://www.google.com/"],
Background.js:

chrome.browserAction.onClicked.addListener(function(tab) {

    var xhr = new XMLHttpRequest();
    xhr.open('GET', "http://www.google.com", true);
    xhr.send();

}
错误

拒绝连接到“”,因为它违反了以下内容安全策略指令:“default src‘none’”。请注意,未显式设置“connect src”,因此使用“default src”作为回退


browserAction.onClicked的事件处理程序中出错:SecurityError:未能在“XMLHttpRequest”上执行“open”:拒绝连接到“”,因为它违反了文档的内容安全策略。

这两个错误分别发生,因为您试图在不请求相关权限的情况下请求页面,必须在扩展清单的
“content\u security\u policy”
(CSP)字段中设置,并且因为您试图连接到不安全的源:如果您想让页面正常工作,需要通过
https://
获取页面,否则Chrome将拒绝您的请求

清单中的CSP字段应如下所示:

“内容安全策略”:“默认src'self”https://google.com"
请参阅《Chrome扩展开发人员指南》和W3C文档中有关CSP的特定信息


无论如何,即使配置了正确的CSP并通过https加载,谷歌仍然不允许您对他们的某些页面进行
XMLHttpRequest
(如您尝试访问的主页)或将其加载到
,所以即使做得很好,请求将在服务器端被阻止,在JavaScript中产生以下错误:

Uncaught NetworkError:未能对“XMLHttpRequest”执行“发送”:加载失败https://google.com/'.
如上所述,因为无法加载/请求
https://www.google.com/
直接而言,您只需放弃任何您希望创建的脚本,而这些脚本需要这样做