php - 摆脱这个代理

标签 php javascript xmlhttprequest

我写了一个 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 应用程序”时有效。我不想让开发人员这样做只是为了使用小部件。

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

最佳答案

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

关于php - 摆脱这个代理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8774318/

相关文章:

javascript - 长轮询中 iphone 上的 safari 加载指示器

javascript - JS : XMLHttpRequest only works on specific file extensions?

php - .htaccess 奇怪的重定向 PHP MVC

php - TinyMCE - 剥离标签然后添加标签 - 奇怪的行为

javascript - React 循环并创建元素

带有函数和随机数发生器的 JavaScript if/else 语句

javascript - 获取对应相似 url 并发请求的性能对象的引用 - Chrome 浏览器

php - 寻找 Laravel Eloquent 关系中的最高值(value)

php - 从 MySQL 中的同一(随机)记录中选择 2 列的最快方法是什么?

javascript - 如何使用 jQuery :contains(some text) selector but only select "some text" from "this is some text"?