【问题标题】:Get rid of this proxy摆脱这个代理
【发布时间】:2012-02-05 03:43:50
【问题描述】:

我编写了一个 js 小部件,用于在任何网站上用一行 js 列出一个人的 github 存储库: http://gitview.logicalcognition.com

当前 gitview.js 访问 gitview.php(我远程托管),然后访问 api.github.com 以提取用户/repo 信息。最初,我只是直接对 api.github.com 进行 XHR GET,而不是通过代理,但我使用了相同的来源策略。

我尝试使用 CORS 或 JSONP,但根据 http://developer.github.com/v3/,这仅在原始域“注册为 OAuth 应用程序”时才有效。我不想让开发人员这样做只是为了使用小部件。

有什么建议吗?我错过了什么吗?

【问题讨论】:

    标签: php javascript xmlhttprequest


    【解决方案1】:

    链接的文档表明 CORS 需要注册域(如果您想直接执行 XHR,则使用该域),而不是 JSON-P。使用 JSON-P,您可以通过编程方式插入这样的脚本标签(使用 document.write 或 DOM 操作):

    <script type="text/javascript"
            src="https://api.github.com/some_request?callback=foo"
    ></script>
    

    这将调用全局函数foo,并将返回的数据作为参数。由于这是一个脚本标签而不是 XHR 请求,因此不适用同源策略,也不需要 CORS 授权。

    【讨论】:

      猜你喜欢
      • 2021-07-07
      • 1970-01-01
      • 2016-10-02
      • 2020-11-29
      • 2015-04-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多