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

回到顶部