我在 Github 页面上托管了一些 JSON 文件,但我无法使用$.getJSON
它们来检索它们,除非它们来自完全相同的域。
有没有办法为 Github 页面启用 CORS?
我在 Github 页面上托管了一些 JSON 文件,但我无法使用$.getJSON
它们来检索它们,除非它们来自完全相同的域。
有没有办法为 Github 页面启用 CORS?
Github Pages 现在启用了 CORS。
CORS 标头:
Access-Control-Allow-Origin: *
默认情况下添加到来自 Github 页面的所有响应中!
作为一种解决方法,可以使用 JSONP,但由于文件是静态的,而且每个文件都需要一个独特的回调方法,因此仍然有点痛苦。
另一种选择是将文件存储在 Gists 中并使用与 CORS 一起使用的 Github API。
第三种可能性是不将文件存储在 Github 页面上,而是将它们托管在启用了 CORS 的 S3/Cloudfront 发行版上。
使用 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)
}
需要注意的事情(对其他人来说可能很明显,但让我绊倒了):
https://github.com/josephrocca/anime-gan-v2-web/blob/main/anime-gan-v2.onnx?raw=true
没有Access-Control-Allow-Origin: *
(即无法从其他站点访问)。如果您右键单击“查看原始”并复制 URL,这是您将获得的 URL。https://raw.githubusercontent.com/josephrocca/anime-gan-v2-web/main/anime-gan-v2.onnx
,它确实有Access-Control-Allow-Origin: *
标题(至少截至 2022 年)。因此,如果将 URL 设置raw.githubusercontent.com
为.
这并不能直接回答这个问题,但对于那些试图将其 Github 存储库中的内容提供给不同域上的用户的人来说可能很有用。