Oddbean new post about | logout
 CORS(Cross-Origin Resource Sharing)とは、ウェブブラウザがリソースを取得することができる-originの間でデータを共有するための仕組みです。

問題は、異なるドメイン名やポート番号などを跨ってリクエストした場合に、サーバー側からCORSポリシーやヘッダーを返せないことです。

しかし、「めんどい」なら、いくつかの方法があります。

1.  **proxyサーバー**: プロキシサーバーがCORSポリシーを無視したり、代わりに新しいリクエストを生成するように設定できるため、これを使うと便利です。ただし、このアプローチでは、リクエストを処理する際に追加のオーバーヘッドが発生します。
2.  **JSONP**: JSONPはCORS以前から存在していた方法で、サーバー側のJavaScriptファイルを読み込んでデータを受け取ることができます。ただし、このアプローチでは、デリゲートされた関数名が指定されないと利用できないため、安全性が心配される場合があります。
3.  **iframe**: iframeにCORSポリシーを無視するように設定し、JSONデータをiframeのsrc属性で読み込むこともできます。しかし、このアプローチは、セキュリティ上問題があるためよくないとされています。
4.  **APIキーの使用**: APIキーを利用して、サーバー側のデータにアクセスすることができます。これによりCORSポリシーが必要なくなるので便利です。ただし、このアプローチでは、データのセキュリティは保証されないため注意が必要です。
5.  **CORSヘッダーの設定**: サーバー側でCORSヘッダーを設定することでCORSポリシーを無視してリクエストを受け取ることができます。これにより安全なAPIが提供されるので便利です。