Access-Control-Allow-Origin
Baseline
Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since 2015年7月.
Access-Control-Allow-Origin はレスポンスヘッダーで、指定されたオリジンからのリクエストを行うコードでレスポンスが共有できるかどうかを示します。
| ヘッダー種別 | レスポンスヘッダー |
|---|---|
| 禁止リクエストヘッダー | いいえ |
構文
Access-Control-Allow-Origin: *
Access-Control-Allow-Origin: <origin>
Access-Control-Allow-Origin: null
ディレクティブ
*(ワイルドカード)-
任意のオリジンからのリクエストコードがこのリソースにアクセスすることができます。 資格情報がないリクエストでは、リテラル値
*をワイルドカードとして指定することができます。 資格情報がある時にワイルドカードを使用すると、エラーを返します。 <origin>-
単一のオリジンを指定します。サーバーが複数のオリジンからのクライアントに対応している場合、リクエストを行った特定のクライアントのオリジンを返さなければなりません。
null-
オリジンを "null" に指定します。
メモ:
nullは使用しないでください。Access-Control-Allow-Origin: "null"を返すと安全であるように見えますが、リソースのオリジンが階層的ではないスキーム (例えばdata:やfile:) を使用しており、サンドボックス化された文書はすべてnullとなるように定義されています。 多くのブラウザーは、そのような文書にAccess-Control-Allow-Origin: nullヘッダーが付いているとアクセスを許可するので、あらゆるオリジンがnullを持つ悪意のある文書を生成する可能性があります。したがって、null値をAccess-Control-Allow-Originヘッダーで使用することは避けるべきです。
例
あらゆるオリジンからのコードにリソースへのアクセスを許可するようブラウザーに指示するレスポンスには、次のような行を含めてください。
Access-Control-Allow-Origin: *
https://developer.mozilla.org のオリジンからリクエストを行うコードに対して、リソースへのアクセスを許可するようブラウザーに指示するレスポンスには、次のような行を含めてください。
Access-Control-Allow-Origin: https://developer.mozilla.org
Access-Control-Allow-Origin の値で複数のオリジンに許可を限定するには、サーバー側で Origin リクエストヘッダーの値をチェックし、許可するオリジンのリストと比較して、 Origin の値がリスト中にあれば、 Access-Control-Allow-Origin の値に Origin と同じ値を設定してください。
CORS とキャッシュ
Access-Control-Allow-Origin の値が (* ワイルドカードではなく) 具体的なオリジンであるレスポンスをサーバーが送信する場合、レスポンスには Vary レスポンスヘッダーに Origin という値を設定して、 Origin リクエストヘッダーの値によって値が変わることをブラウザーに対して示してください。
Access-Control-Allow-Origin: https://developer.mozilla.org
Vary: Origin
仕様書
| Specification |
|---|
| Fetch> # http-access-control-allow-origin> |
ブラウザーの互換性
Loading…