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 July 2015.

Access-Control-Allow-Originレスポンスヘッダーで、指定されたオリジンからのリクエストを行うコードでレスポンスが共有できるかどうかを示します。

ヘッダー種別 レスポンスヘッダー
禁止ヘッダー名 いいえ

構文

http
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 ヘッダーで使用することは避けるべきです。

あらゆるオリジンからのコードにリソースへのアクセスを許可するようブラウザーに指示するレスポンスには、次のような行を含めてください。

http
Access-Control-Allow-Origin: *

https://developer.mozilla.org のオリジンからリクエストを行うコードに対して、リソースへのアクセスを許可するようブラウザーに指示するレスポンスには、次のような行を含めてください。

http
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 リクエストヘッダーの値によって値が変わることをブラウザーに対して示してください。

http
Access-Control-Allow-Origin: https://developer.mozilla.org
Vary: Origin

仕様書

Specification
Fetch
# http-access-control-allow-origin

ブラウザーの互換性

BCD tables only load in the browser

関連情報