摆脱这个代理
我写了一个 js 小部件,用于用一行 js 列出任何网站上的 github 存储库: http://gitview.ologicalcognition.com
目前 gitview.js 命中了 gitview.php (我远程托管),其中依次点击 api.github.com 来提取用户/仓库信息。最初,我只是直接对 api.github.com 执行 XHR GET,而不是通过代理,但我遵循了同源策略。
我尝试使用 CORS 或 JSONP,但根据 http://developer.github.com/v3/仅当原始域“注册为 OAuth 应用程序”时,这才有效。我不想让开发人员这样做只是为了使用小部件。
有什么建议吗?我错过了什么吗?
I wrote a js widget for listing one's github repos on any website with a single line of js:
http://gitview.logicalcognition.com
Currently gitview.js hits gitview.php (which i host remotely) which in turn hits api.github.com to pull user / repo info. Originally, I just did the XHR GET directly to api.github.com rather than through the proxy, but I hit the same origin policy.
I tried using CORS or JSONP, but according to http://developer.github.com/v3/ this only works if the originating domain "is registered as an OAuth Application". I didn't want to make developers do this just to use the widget.
Any suggestions? Am I missing something?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
链接的文档表明 CORS 需要注册域(如果您想执行直接 XHR,则需要使用),但不需要 JSON-P。使用 JSON-P,您可以通过编程方式插入这样的脚本标记(使用
document.write
或 DOM 操作):然后,这将使用返回的值调用全局函数
foo
数据作为参数。由于这是脚本标签而不是XHR请求,因此不适用同源策略,并且不需要CORS授权。The documentation linked indicates a registered domain is needed for CORS (used if you wanted to do a direct XHR), but not JSON-P. With JSON-P, you'd insert a script tag like this programatically (using
document.write
or DOM manipulation):This will then invoke the global function
foo
with the returned data as an argument. Since this is a script tag and not an XHR request, the same-origin policy does not apply and CORS authorization is not required.