chrome扩展中的跨域XMLHttpRequest
根据chrome扩展,如果设置了权限,则应允许使用XMLHttpRequest对象的API跨域调用:
扩展可以与源外的远程服务器通信,只要它首先请求跨域许可。
我正在密切关注本教程,但是下面的代码给了我一条错误消息:
XMLHttpRequest无法加载http://www.google.com/search?hl=zh_CN&q=ajax。Access-
Control-Allow-Origin不允许使用来源chrome-extension://
bmehmboknpnjgjbmiaoidkkjfcgiimbo。
我不仅允许对google.com的请求,还允许对任何网站的请求,但仍然无法通过。有人可以帮忙吗?
我的清单文件:
{ "name": "The popup",
"version": "0.1",
"popup": "popup.html",
"permissions": [
"http://*/*",
"https://*/*",
"https://www.google.com/*",
"http://www.google.com/*"
],
"browser_action": {
"default_icon": "clock-19.png",
"default_title": "This is title",
"default_popup": "popup.html"
}
}
实际通话:
function sendRequest() { document.write("Sending request");
var req = new XMLHttpRequest();
req.open("GET", "http://www.google.com/search?hl=en&q=ajax", true);
req.onreadystatechange = function() {
if (req.readyState == 4) {
if (req.status == 200) {
alert(req.responseText);
document.write("OK");
}
}
};
req.send();
}
回答:
两件事情;
您需要确保自己制作的是打包的应用程序/扩展名,而不是托管的。跨源请求不适用于托管应用。假设您固定了该部分,则可能要尝试将以下内容放入您的权限中:http://*/
。这是我打包的应用程序中唯一的一个,它确实可以跨源运行,没有任何问题。
以上是 chrome扩展中的跨域XMLHttpRequest 的全部内容, 来源链接: utcz.com/qa/409289.html