Javascript 拒绝加载脚本Chrome扩展
我正在尝试调用此站点并接收一个json对象。如何在给定CSP的chrome扩展中正确地与此API接口 错误:拒绝加载脚本“”,因为它违反了以下内容安全策略指令:“script src'self'chrome extension resource:”Javascript 拒绝加载脚本Chrome扩展,javascript,php,json,google-chrome,google-chrome-extension,Javascript,Php,Json,Google Chrome,Google Chrome Extension,我正在尝试调用此站点并接收一个json对象。如何在给定CSP的chrome扩展中正确地与此API接口 错误:拒绝加载脚本“”,因为它违反了以下内容安全策略指令:“script src'self'chrome extension resource:” var word=“微笑”; var s=document.createElement(“脚本”); s、 src=”http://thesaurus.altervista.org/service.php?word=“+word+”&language
var word=“微笑”;
var s=document.createElement(“脚本”);
s、 src=”http://thesaurus.altervista.org/service.php?word=“+word+”&language=en_US&output=json&key=REMOVEDMYKEY&callback=thesaurus”;
document.getElementsByTagName(“head”)[0]。appendChild;
函数叙词表(结果){
输出=”;
对于(键入result.response){
列表=结果。响应[键]。列表;
输出+=列表。同义词+“
”;
}
如果(输出)
document.getElementById(“同义词”).innerHTML=输出;
}
请检查脚本是否声明了所需的权限,如下所述:
在您的清单中应该有如下内容:
"permissions": [
"*http://thesaurus.altervista.org/*"
],
您显示的URL明确表示它可以返回JSON对象。回调(JSONP样式)是可选的 由于Chrome的扩展功能,您无法从该域使用JSONP。虽然您可以更改策略,但出于安全原因,禁止使用HTTP源 相反,您希望将JSON响应捕获为字符串并对其进行解析 您需要对该URL执行以下操作:
function thesaurus(word) {
var xhr = new XMLHttpRequest();
xhr.onload = function() {
try {
var result = JSON.parse(this.responseText);
// Do something with the result
} catch(e) {
// Invalid JSON response
}
}
xhr.onerror = function(e) {
// Something bad happened
}
xhr.open(
"GET",
"http://thesaurus.altervista.org/service.php?word=" + word +
"&language=en_US&output=json&key=REMOVEDMYKEY",
true
);
xhr.send();
}
您可能需要清单中的主机权限才能执行此操作,除非该服务器已从任何来源启用CORS(顺便说一句,这对于这样的API是有意义的)
function thesaurus(word) {
var xhr = new XMLHttpRequest();
xhr.onload = function() {
try {
var result = JSON.parse(this.responseText);
// Do something with the result
} catch(e) {
// Invalid JSON response
}
}
xhr.onerror = function(e) {
// Something bad happened
}
xhr.open(
"GET",
"http://thesaurus.altervista.org/service.php?word=" + word +
"&language=en_US&output=json&key=REMOVEDMYKEY",
true
);
xhr.send();
}
"permissions": [
"*://thesaurus.altervista.org/*"
],