title | slug |
---|---|
Access-Control-Allow-Origin |
Web/HTTP/Headers/Access-Control-Allow-Origin |
{{HTTPSidebar}}
Access-Control-Allow-Origin
レスポンスヘッダーは、指定された{{glossary("origin", "オリジン")}}からのリクエストを行うコードでレスポンスが共有できるかどうかを示します。
ヘッダー種別 | {{Glossary("Response header", "レスポンスヘッダー")}} |
---|---|
{{Glossary("Forbidden header name", "禁止ヘッダー名")}} | いいえ |
Access-Control-Allow-Origin: *
Access-Control-Allow-Origin: <origin>
Access-Control-Allow-Origin: null
-
*
- : 資格情報がないリクエストでは、リテラル値 "
*
" をワイルドカードとして指定することができます。この値はブラウザーに、すべてのオリジンからのリクエストコードにリソースへのアクセスを許可するように指示します。資格情報がある時にワイルドカードを使用すると、エラーを返します。
- : 資格情報がないリクエストでは、リテラル値 "
-
<origin>
- : オリジンを指定します。1 つのオリジンだけを指定することができます。サーバーが複数のオリジンからのクライアントに対応している場合、リクエストを行った特定のクライアントのオリジンを返さなければなりません。
-
null
-
: オリジンを "null" に指定します。
メモ:
null
は使用しないでください。「Access-Control-Allow-Origin: "null"
を返すと安全であるように見えますが、リソースのオリジンが階層的ではないスキーム (例えばdata:
やfile:
) を使用しており、サンドボックス化された文書はすべて "null" となるように定義されています。多くのユーザーエージェントはそのような文書にAccess-Control-Allow-Origin: "null"
ヘッダーが付いているとアクセスを許可するので、あらゆるオリジンが "null" を持つ悪意のある文書を生成することができます。したがって、 ACAO ヘッダーで "null" 値を使用することは避けるべきです。」
-
あらゆるオリジンからのコードにリソースへのアクセスを許可するようブラウザーに指示するレスポンスには、次のような行を含めてください。
Access-Control-Allow-Origin: *
https://developer.mozilla.org
のオリジンからリクエストを行うコードに対して、リソースへのアクセスを許可するようブラウザーに指示するレスポンスには、次のような行を含めてください。
Access-Control-Allow-Origin: https://developer.mozilla.org
Access-Control-Allow-Origin
の値で複数のオリジンに許可を限定するには、サーバー側で {{HTTPHeader("Origin")}} リクエストヘッダーの値をチェックし、許可するオリジンのリストと比較して、 {{HTTPHeader("Origin")}} の値がリスト中にあれば、 Access-Control-Allow-Origin
の値に {{HTTPHeader("Origin")}} と同じ値を設定してください。
Access-Control-Allow-Origin
の値が ("*
" ワイルドカードではなく) 具体的なオリジンであるレスポンスをサーバーが送信する場合、レスポンスには {{HTTPHeader("Vary")}} レスポンスヘッダーに Origin
という値を設定して、 Origin
リクエストヘッダーの値によって値が変わることをブラウザーに対して示してください。
Access-Control-Allow-Origin: https://developer.mozilla.org
Vary: Origin
{{Specifications}}
{{Compat}}
- {{HTTPHeader("Origin")}}
- {{HTTPHeader("Vary")}}
- Cross-Origin Resource Sharing (CORS)
- {{httpheader("Cross-Origin-Resource-Policy")}}