GitHub Pages 跨源资源共享

问题描述 投票:0回答:6

有没有办法为 GitHub Pages 上托管的静态页面启用跨域资源共享 (CORS),以允许 Javascript 中的跨域请求?

例如,我们能否以某种方式指示 GH Pages 添加这些 HTTP 响应标头:

Access-Control-Allow-Origin:*  
Access-Control-Allow-Methods:GET,POST
Access-Control-Max-Age: 1000
Access-Control-Allow-Headers:*

在他们的文档中找不到任何内容,而这个...

...GitHub Pages 不支持客户服务器配置文件 例如 .htaccess 或 .conf...

...听起来不太有希望——或者有办法吗?

github cors github-pages
6个回答
54
投票

编辑:耶!看起来 GitHub Pages 现在支持 CORS:https://twitter.com/invisiblecomma/status/575219895308324864

这可以通过向enable-cors.org(托管在GitHub Pages上)发出请求来验证。运行此命令:

curl -v enable-cors.org > /dev/null
返回
Access-Control-Allow-Origin: *
标头。

GitHub Pages 上无法支持 CORS,尽管我很想看到此功能。我们在 GitHub Pages 上托管 http://enable-cors.org,但我们无法在网站本身上启用 CORS :)


更新

正如 @Styx 所指出的,GitHub 页面现在始终重定向到 HTTPS。因此,如果您想亲自确认是否允许所有来源,对于使用 GitHub 页面的特定站点,请尝试使用

curl
-L
(遵循所涉及的重定向)。例如:

$ curl -vL square.github.io/okhttp 2>&1 | fgrep -i access-control-allow-origin

8
投票

您可以使用 CORS 代理。
http://cors.io/为我工作。

正常请求:

$.getJSON('https://blockchain.info/stats?format=json',function(data){})

使用代理请求(只需在 url 前面添加 http://cors.io/?

$.getJSON('http://cors.io/?https://blockchain.info/stats?format=json',function(data){})

更新: API 文档已更新,您只需在网址前加上

https://cors.io/?
即可。


6
投票

仅供参考,看起来 GitHub Pages 现在支持 CORS(至少在某些情况下)。在这种情况下,带有裸 URL 的自定义域(没有 www 或 github 子域)。这意味着使用 A 记录并避免缓存 CDN。

当我现在访问enable-cors.org 时,我会看到所有资源上都返回了

Access-Control-Allow-Origin: *
标头(来自浏览器开发人员工具的网络选项卡)。在 Chrome 和 Firefox 中。

我在 https://isthetubeonstrike.com 使用它从 移动网络应用程序访问跨域的 JSON 文件。 SSL/TLS 是通过 CloudFlare BTW 提供的。


2
投票

几天前提交支持票证后我得到的结果是,CORS 请求 GitHub Pages 完全没问题。

从另一个页面获取内容,这就是原始帖子似乎询问的内容,意味着另一个页面的服务器必须设置 CORS 请求,否则它将阻止您的请求。 通常,如果确实需要从站点获取内容,站点会有公共 API 来解决此问题(例如,维基百科的 MediaWiki)。


2
投票
https://customdomain.com/

)。检查开发工具中的网络选项卡并观察 URL 以检查它是否生成了预期的 URL。


0
投票
https://github.com/gzuidhof/coi-serviceworker

脚本与 Github Pages 取得了成功。 只需将其包含在 HTML 中并使用:

<script src="coi-serviceworker.js"></script>

<script src="coi-serviceworker.min.js"></script>

对于缩小版本。  无需进一步配置,也无需代理或其他外部服务。

您可以使用控制台上的

window.crossOriginIsolated

轻松检查浏览器是否认为您的页面是跨源隔离的,以验证其是否按预期工作。

    

© www.soinside.com 2019 - 2024. All rights reserved.