Chrome扩展程序:Cross Origin $ .Post请求

时间:2011-04-28 13:38:12

标签: jquery google-chrome-extension

我正在尝试访问后来的API,通过谷歌浏览器扩展程序(以及其他方式)将一些内容发布到网站。

因为它是一个公共API,所以我希望它允许每个人发布,但由于某种原因,它不允许发布。

但每次我都会收到错误。

当我从浏览器访问它时出现相同的错误

这是通过浏览器访问时的错误

Access-Control-Allow-Origin

不允许

http://localhost

这是通过Chrome扩展程序

访问时的错误
XMLHttpRequest cannot load http://posterous.com/api/2/users/me/sites/primary/posts?api_token=vxgufysnzlDwmEtkbDbzHtxxBADsEFGr&email=***@gmail.com&password=***. Origin chrome-extension://maabelkjnhafpphacjecmcnkkmjndjgl is not allowed by Access-Control-Allow-Origin.

以下是代码:

$.ajax({
        //type: 'GET',
        url: 'http://posterous.com/api/2/users/me/sites/primary/posts?api_token=vxgufysnzlDwmEtkbDbzHtxxBADsEFGr&email=shahid1376@gmail.com&password=WHY_DID_YOU_PUT_YOUR_REAL_PASS',
      // url:'http://posterous.com/api/2/users/me/sites/primary/posts/public',
       type : 'POST',

        dataType: 'json',
        crossDomain: true,
        data: "{'title': 'test posterous'}",
        contentType:'text/plain',
        success:function result(data) {
                alert("Call completed successfully"); 
        }

1 个答案:

答案 0 :(得分:4)

您的manifest.json文件应该包含您要在权限中使用的两个域:

"permissions": [
    "http://*.posterous.com/",
    "http://localhost/"
]

对于它的价值,我不会在localhost中加入permissions;相反,使用您计划在生产中使用的域,然后使用hosts行将域重定向到您自己的服务器。这将允许您在自己的服务器上进行开发,但不会强制您的用户允许他们可能不期望的localhost权限。