摆脱这个代理

时间:2012-01-08 00:20:33

标签: php javascript xmlhttprequest

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

目前gitview.js点击gitview.php(我主持远程),然后点击api.github.com来提取用户/回购信息。最初,我只是将XHR GET直接发送到api.github.com,而不是通过代理,但我达到了相同的原始政策。

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

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

1 个答案:

答案 0 :(得分:2)

链接的文档表明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授权。