web-dev-qa-db-ja.com

GitHubページでのクロスオリジンリソースシェアリング

GitHub Pages でホストされている静的ページに対してクロスオリジンリソースシェアリング(CORS)を有効にして、JavaScriptでクロスオリジンリクエストを許可する方法はありますか?

たとえば、GHページにこれらのHTTP応答ヘッダーを追加するように指示することができますか?

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

documentation に何も見つかりませんでした。これは...

... GitHub Pagesは、.htaccessや.confなどの顧客サーバー構成ファイルをサポートしていません...

...あまり有望に聞こえません-または方法はありますか?

32
Max

編集:やった! GitHub PagesがCORSをサポートするようになりました: https://Twitter.com/invisiblecomma/status/575219895308324864

これは、(GitHubページでホストされている)enable-cors.orgへのリクエストを丸めることで確認できます。このコマンドを実行すると、curl -v enable-cors.org > /dev/nullAccess-Control-Allow-Origin: *ヘッダーを返します。

GitHubページでCORSをサポートする方法はありませんが、この機能をぜひご覧ください。 GitHubページで http://enable-cors.org をホストしていますが、サイト自体でCORSを有効にすることはできません:)

25
monsur

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){})

UPDATE:API doc が更新されました。URLの前にhttps://cors.io/?を付けるだけです。

10
Victor

ちなみに、GitHub PagesはCORSをサポートしているようです(少なくとも一部の状況では)。この場合、URLのみのカスタムドメイン(wwwまたはgithubサブドメインなし)。つまり、Aレコードを使用し、CDNのキャッシュを回避します。

Enable-cors.orgにアクセスすると、Access-Control-Allow-Origin: *ヘッダーが(ブラウザー開発者ツールのネットワークタブから)すべてのリソースで返されます。 ChromeとFirefoxの両方で。

https://isthetubeonstrike.com でこれを使用して、- モバイルWebアプリ からJSONファイルのクロスドメインにアクセスします。 SSL/TLSはCloudFlare BTWを経由して提供されます。

3
James Singleton

https://github.com/jpillora/xdomain のようなjavascriptライブラリを使用して、GithubページでCORSをエミュレートできます

1
David Jacquel

数日前にサポートチケットを入力して得たのは、CORSリクエストto GitHub Pagesが完全に問題ないということです。

コンテンツの取得from別のページ(元の投稿が要求しているようです)は、他のページのサーバーにCORSリクエストを設定する必要があるか、そうでなければリクエストをブロックします。通常、サイトには、コンテンツを取得する必要がある場合に、この問題を回避するためのパブリックAPIがあります(MediaWiki for Wikipediaなど)。

0
A13X

私の場合、カスタムドメインを使用していましたが、デプロイ中にドメインを追加するのを忘れていました(ng deploy --base-href https://customdomain.com/ )。 dev-toolsのネットワークタブを確認し、URLを観察して、予期したURLが生成されているかどうかを確認します。

0