このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。

View in English Always switch to English

Access-Control-Allow-Headers ヘッダー

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月.

* Some parts of this feature may have varying levels of support.

HTTP の Access-Control-Allow-Headersレスポンスヘッダーで、プリフライトリクエストへのレスポンスで使用され、実際のリクエスト中に使用できる HTTP ヘッダーを示します。 このヘッダーは、プリフライトリクエストに Access-Control-Request-Headers が含まれている場合に必須になります。

メモ: CORS セーフリストリクエストヘッダーは常に許可されており、通常は Access-Control-Allow-Headers に列挙されません。ただし、追加のセーフリスト制限を回避する必要がある場合を除きます。

ヘッダー種別 レスポンスヘッダー

構文

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

ディレクティブ

<header-name>

対応しているリクエストヘッダーの名前です。ヘッダーはコンマで区切って、任意の数のリストにすることができます。

* (ワイルドカード)

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

カスタムヘッダー

Access-Control-Allow-Headers ヘッダーがどのように見えるかの例です。 これは、CORS セーフリストリクエストヘッダーに加えて、サーバーへの CORS リクエストにおいて X-Custom-Header という独自のヘッダーが対応していることを示しています。

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

複数のヘッダー

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

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

CORS セーフリストヘッダーに対する追加制限の回避

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

http
Access-Control-Allow-Headers: Accept

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

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

リクエスト

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

次のプリフライトリクエストは、CORS の GET リクエストを、Access-Control-Request-Headers で列挙されているヘッダー(Content-TypeX-Requested-With)付きで送信したいことをサーバーに伝えます。

http
OPTIONS /resource/foo
Access-Control-Request-Method: GET
Access-Control-Request-Headers: content-type,x-requested-with
Origin: https://www.example.com

レスポンス

プリフライトリクエストで示された CORS リクエストが許可された場合、サーバーはプリフライトリクエストに対して、許可されたオリジン、メソッド、ヘッダーを示すメッセージで応答します。次に示すように、Access-Control-Allow-Headers にはリクエストされたヘッダーが記載されています。

http
HTTP/1.1 200 OK
Content-Length: 0
Connection: keep-alive
Access-Control-Allow-Origin: https://www.example.com
Access-Control-Allow-Methods: POST, GET, OPTIONS, DELETE
Access-Control-Allow-Headers: Content-Type, x-requested-with
Access-Control-Max-Age: 86400

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

仕様書

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

ブラウザーの互換性

関連情報