Access-Control-Allow-Headers

Access-Control-Allow-Headers レスポンスヘッダーは、 Access-Control-Request-Headers を含むプリフライトリクエストへのレスポンスで、実際のリクエストの間に使用できる HTTP ヘッダーを示すために使用されます。

このヘッダーは、リクエストに Access-Control-Request-Headers ヘッダーが含まれている時に必要です。

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

構文

Access-Control-Allow-Headers: <header-name>[, <header-name>]*
Access-Control-Allow-Headers: *

ディレクティブ

<header-name>
対応しているリクエストヘッダーの名前です。ヘッダーはコンマで区切って、任意の数のリストにすることができます。
* (ワイルドカード)
"*" の値は、資格情報のないリクエスト (HTTP Cookie や HTTP の認証情報のないリクエスト) の特殊なワイルドカード値です。認証情報付きのリクエストでは、特別な意味のない "*" というヘッダー名として扱われます。なお、 Authorization ヘッダーはワイルドカードで表すことができず、常に明示的に列挙する必要があります。

CORS セーフリストリクエストヘッダー, Accept, Accept-Language, Content-Language, Content-Type は常に許可されており、このヘッダーで列挙する必要はありません。しかし、これらのヘッダーを Access-Control-Allow-Headers に列挙することで、これらのヘッダーでも追加の制約の適用を回避することができることに注意してください。

カスタムヘッダー

Access-Control-Allow-Headers ヘッダーがどのように見えるかの例です。CORS セーフリストリクエストヘッダーに加えて、 X-Custom-Header という名前のカスタムヘッダーがサーバーへの CORS リクエストで対応しています。

Access-Control-Allow-Headers: X-Custom-Header

複数のヘッダー

この例は、複数のヘッダーへの対応を指定するときの Access-Control-Allow-Headers を示しています。

Access-Control-Allow-Headers: X-Custom-Header, Upgrade-Insecure-Requests

追加の制約の回避

CORS セーフリストリクエストヘッダーは常に許可され、ふつうは Access-Control-Allow-Headers に列挙する必要はありませんが、それでも列挙すれば追加の制約が適用されることを回避できます。

Access-Control-Allow-Headers: Accept

プリフライトリクエストの例

Access-Control-Allow-Headers を伴うプリフライトリクエストの例を見てみましょう。

リクエスト

最初にリクエストです。プリフライトリクエストは OPTIONS リクエストで、次のように3つのプリフライトリクエストヘッダー、 Access-Control-Request-Method, Access-Control-Request-Headers, Origin の組み合わせを含みます。

OPTIONS /resource/foo
Access-Control-Request-Method: DELETE
Access-Control-Request-Headers: origin, x-requested-with
Origin: https://foo.bar.org

レスポンス

CORS リクエストが DELETE メソッドを使うことをサーバーが許可した場合、 Access-Control-Allow-Methods レスポンスヘッダーで返信し、そこでは DELETE とともに対応するその他のメソッドのリストが含まれます。

HTTP/1.1 200 OK
Content-Length: 0
Connection: keep-alive
Access-Control-Allow-Origin: https://foo.bar.org
Access-Control-Allow-Methods: POST, GET, OPTIONS, DELETE
Access-Control-Max-Age: 86400

要求されたメソッドに対応していない場合は、サーバーはエラーを返します。

仕様書

仕様書 状態 備考
Fetch
Access-Control-Allow-Headers の定義
現行の標準 初回定義

ブラウザーの互換性

Update compatibility data on GitHub
デスクトップモバイル
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewAndroid 版 ChromeAndroid 版 FirefoxAndroid 版 OperaiOSのSafariSamsung Internet
Access-Control-Allow-HeadersChrome 完全対応 4Edge 完全対応 12Firefox 完全対応 3.5IE 完全対応 10Opera 完全対応 12Safari 完全対応 4WebView Android 完全対応 2Chrome Android 完全対応 ありFirefox Android 完全対応 4Opera Android 完全対応 12Safari iOS 完全対応 3.2Samsung Internet Android 完全対応 あり
Wildcard (*)Chrome 完全対応 63Edge 未対応 なしFirefox 完全対応 69IE 未対応 なしOpera 完全対応 50Safari 未対応 なしWebView Android 完全対応 63Chrome Android 完全対応 63Firefox Android 未対応 なしOpera Android 完全対応 46Safari iOS 未対応 なしSamsung Internet Android 完全対応 8.2

凡例

完全対応  
完全対応
未対応  
未対応

関連情報