有没有办法处理Chrome扩展程序中的AJAX Origin错误?
拒绝加载 镀铬的扩展://kldbdjcbjohfhddpicldkbifbkcdanid/data.json。 资源必须列在web_accessible_resources清单键中 为了通过扩展名以外的页面加载。
我试过了:
$.ajax({
url: 'chrome-extension://kldbdjcbjohfhddpicldkbifbkcdanid/data.json',
datatype: 'json',
success: function(xhr) {
alert('ok');
},
erro r: function(xhr, status, err) {
alert('status: ' + xhr.status + ' - ' + err);
}
});
但变量中没有任何东西。错误状态为“0”,错误消息为空。
答案 0 :(得分:0)
您可以尝试使用jsonp格式。这通常会解决跨源错误。
$.ajax({
url: 'chrome-extension://kldbdjcbjohfhddpicldkbifbkcdanid/data.json',
datatype: 'jsonp',
success: function(xhr) {
alert('ok');
},
erro r: function(xhr, status, err) {
alert('status: ' + xhr.status + ' - ' + err);
}
});
答案 1 :(得分:0)
听起来好像是在尝试根据错误从内容脚本加载此资源。
您必须通过web_accessible_resources
在清单中明确添加单个扩展资源或与您的扩展资源匹配的模式。您的错误消息指出这是解决方案。
完成此操作后,您可以使用chrome.extension.getURL(resourcePath)
构建网址。
以下是我的清单摘录:
"web_accessible_resources" : [
"*.html"
]
这是我用来请求我的HTML模板文件的代码:
var url = chrome.extension.getURL("template.html");
$.get(url,function(data, textStatus, jqXHR){
console.log("Got the template!");
console.log(data);
},"html");