jquery - Chrome 扩展程序 : Cross Origin $. 发布请求

标签 jquery google-chrome-extension

我正在尝试访问 Posterous API,通过 google chrome 扩展程序(或其他方式)将一些内容发布到网站。

由于它是公共(public)API,所以我希望它允许每个人发帖,但由于某种原因,它不允许发帖。

但是每次我都会遇到错误。

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

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

http://localhost Access-Control-Allow-Origin 不允许

这是通过 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"); 
        }

最佳答案

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

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

就其值(value)而言,我不会在您的权限中包含localhost;相反,使用您计划在生产中使用的域,然后使用 hosts 行将该域重定向到您自己的服务器。这将允许您在自己的服务器上进行开发,但不会强制您的用户允许他们可能不期望的 localhost 权限。

关于jquery - Chrome 扩展程序 : Cross Origin $. 发布请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5819509/

相关文章:

javascript - 停止传播和开始传播

jquery - 如何使弹出式 div 悬停在 jquery 中的链接上?

jquery - 按下提交按钮的动画背景?

javascript - 如何拆分逗号分隔的字符串并使用javascript插入到html中

google-chrome-extension - 打包和未打包的 Google Chrome 扩展程序有什么区别?

javascript - 为什么 jQuery 在 google chrome 扩展的浏览器操作弹出窗口中不起作用?

javascript - 即时将 console.profile 语句添加到 JavaScript/jQuery 代码中

google-chrome - 如何在 google chrome PC 中更改地址栏颜色

javascript - 无法从 Fetch response.json() 返回 JSON 字段(但可以从 console.log 看到它)

javascript - Google Chrome 扩展程序可以检测所有脚本何时完成加载吗?