如何在chrome扩展中使用AJAX执行跨域请求

时间:2014-05-15 14:30:58

标签: ajax google-chrome-extension cross-domain

我正在为facebook开发chrome扩展程序。我需要将数据发送到另一台服务器(比如http://example.comxa.com)。我正在使用XMLHttpRequest()方法向服务器发送POST请求。

var xhr = new XMLHttpRequest();
xhr.open("POST","http://example.comxa.com",false);
xhr.send();

但是我在conosle中收到以下错误消息:

Refused to connect to 'http://www.example.comxa.com/' because
 it violates the following Content Security Policy directive: "connect-src 
https://*.facebook.com http://*.facebook.com https://*.fbcdn.net
 http://*.fbcdn.net *.facebook.net *.spotilocal.com:* https://*.akamaihd.net
 ws://*.facebook.com:* http://*.akamaihd.net https://fb.scanandcleanlocal.com:
* *.atlassolutions.com http://attachment.fbsbx.com https://attachment.fbsbx.com".

Uncaught SecurityError: Failed to execute 'open' on 'XMLHttpRequest': Refused to 
connect to 'http://www.example.comxa.com/' because it violates the document's
 Content Security Policy. 

我已在清单文件中添加了http://www.example.comxa.com的权限:

"permissions": ["http://www.example.comxa.com/","storage"],

在搜索时我发现可以在Chrome扩展程序(https://developer.chrome.com/extensions/xhr)中制作跨源AJAX请求,但是如何?

我还做了一个扩展,使用这样的调用来获取使用AJAX的选定单词的含义,但它运行良好:

var request = new XMLHttpRequest();
url = "http://www.dictionaryapi.com/api/v1/references/collegiate/xml/" + text +
 "?key=api-key";        
request.open("GET",url,true);
rewuest.send();

并且尚未在清单中添加http://www.dictionaryapi.com/的权限。

0 个答案:

没有答案