从扩展中使用 AJAX 访问远程域
Posted
技术标签:
【中文标题】从扩展中使用 AJAX 访问远程域【英文标题】:Access remote domain using AJAX from extension 【发布时间】:2012-07-25 14:09:30 【问题描述】:我正在尝试开发 AJAX 特定页面的 Chrome 扩展程序,然后将根据该页面上的内容显示通知。 (使用webkitNotifications
)
这个页面是一个票务系统,我要检查的是用户是否登录,以及他们是否有新票。更重要的是,我不拥有或控制远程页面。
由于Same Origin Policy,我被卡住了。基本上,当我尝试 AJAX 页面时,我收到以下错误:
XMLHttpRequest cannot load http:// Remote Site URL . Origin chrome-extension://gcagdmmcgmldhommhlckpbgdmlfojblp is not allowed by Access-Control-Allow-Origin.
我从未为 Chrome 或任何其他浏览器开发过扩展程序,因此我不确定是否有可能的解决方法。
我尝试通过 Google 和 SO 寻找解决方案,但似乎找不到任何适合我需要的东西。
【问题讨论】:
将http:// Remote Site URL *
添加到manifest.json
的权限字段 - 请参阅code.google.com/chrome/extensions/manifest.html
【参考方案1】:
Google Chrome 扩展文档有一个专门用于cross-domain XHR 的页面。只需添加一个满足您希望获取的站点的 URL match pattern
作为清单的权限。一个好的匹配模式可能看起来像
http://www.example.com/*
*://www.example.com/*
(适用于 HTTP 和 HTTPS)
https://*.example.com/*
(适用于通过 HTTPS 的 example.com
的所有子域)
【讨论】:
谢谢,这正是我需要的解决方案!以上是关于从扩展中使用 AJAX 访问远程域的主要内容,如果未能解决你的问题,请参考以下文章