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などの顧客サーバー構成ファイルをサポートしていません...
...あまり有望に聞こえません-または方法はありますか?
編集:やった! GitHub PagesがCORSをサポートするようになりました: https://Twitter.com/invisiblecomma/status/575219895308324864
これは、(GitHubページでホストされている)enable-cors.orgへのリクエストを丸めることで確認できます。このコマンドを実行すると、curl -v enable-cors.org > /dev/null
はAccess-Control-Allow-Origin: *
ヘッダーを返します。
GitHubページでCORSをサポートする方法はありませんが、この機能をぜひご覧ください。 GitHubページで http://enable-cors.org をホストしていますが、サイト自体でCORSを有効にすることはできません:)
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/?
を付けるだけです。
ちなみに、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を経由して提供されます。
https://github.com/jpillora/xdomain のようなjavascriptライブラリを使用して、GithubページでCORSをエミュレートできます
数日前にサポートチケットを入力して得たのは、CORSリクエストto GitHub Pagesが完全に問題ないということです。
コンテンツの取得from別のページ(元の投稿が要求しているようです)は、他のページのサーバーにCORSリクエストを設定する必要があるか、そうでなければリクエストをブロックします。通常、サイトには、コンテンツを取得する必要がある場合に、この問題を回避するためのパブリックAPIがあります(MediaWiki for Wikipediaなど)。
私の場合、カスタムドメインを使用していましたが、デプロイ中にドメインを追加するのを忘れていました(ng deploy --base-href https://customdomain.com/ )。 dev-toolsのネットワークタブを確認し、URLを観察して、予期したURLが生成されているかどうかを確認します。