【发布时间】:2013-09-26 05:29:41
【问题描述】:
我在 Github 页面上托管了一些 JSON 文件,但我无法使用 $.getJSON 检索它们,除非它们来自完全相同的域。
有没有办法为 Github 页面启用 CORS?
【问题讨论】:
标签: jsonp cors github-pages
我在 Github 页面上托管了一些 JSON 文件,但我无法使用 $.getJSON 检索它们,除非它们来自完全相同的域。
有没有办法为 Github 页面启用 CORS?
【问题讨论】:
标签: jsonp cors github-pages
Github Pages 现在启用了 CORS。
CORS 标头:
Access-Control-Allow-Origin: *
默认添加到来自 Github 页面的所有响应中!
【讨论】:
API 可以,但有限制...
“对于使用基本身份验证或 OAuth 的请求,您每小时最多可以发出 5,000 个请求。对于未经身份验证的请求,速率限制允许您每小时最多发出 60 个请求。未经身份验证的请求与您的 IP 地址相关联,并且而不是发出请求的用户。”
var xhr = new XMLHttpRequest();
xhr.open('GET', 'https://api.github.com/repos/jimmywarting/diezyweb/contents/index.html?ref=gh-pages');
xhr.setRequestHeader("Accept", "application/vnd.github.3.raw");
xhr.send();
xhr.onload = function(e){
alert(xhr.response)
}
【讨论】:
作为一种解决方法,可以使用 JSONP,但仍然有点麻烦,因为文件是静态的,并且每个文件都需要一个唯一的回调方法。
另一种选择是将文件存储在 Gists 中并使用与 CORS 配合使用的 Github API。
第三种可能性是不将文件存储在 Github 页面上,而是将它们托管在启用了 CORS 的 S3/Cloudfront 发行版上。
【讨论】: