Allow-Credentials の値が True になっている

設定ファイルに True と書いてしまい、Cookie つきのリクエストだけが失敗するようになった典型的なミスの例です。A が誤り、B が直した後の状態として、直ったことを確かめます。

入力

A: 変更前の応答ヘッダー

Access-Control-Allow-Origin: https://app.example.com
Access-Control-Allow-Credentials: True

B: 変更後の応答ヘッダー

Access-Control-Allow-Origin: https://app.example.com
Access-Control-Allow-Credentials: true

リクエストの資格情報(credentials)

つき(Cookie や認証情報を送る。fetch の credentials: include など)

結果

エラー 1 件・警告 0 件・情報 0 件

指摘(エラー・警告・情報)

  • エラー A: Access-Control-Allow-Credentials Access-Control-Allow-Credentials の値「True」は使えません。値は小文字の true だけで、True や TRUE も不可です(Fetch Standard 3.3.4・3.3.5)。
差分のあるヘッダー1 項目(全 6 項目中)
A のエラー・警告エラー 1 件・警告 0 件
B のエラー・警告エラー 0 件・警告 0 件
判定A の規則違反(エラー)が B で解消されます
前提のリクエスト資格情報つき(Cookie などを送る)

ヘッダーごとの差分

ヘッダーごとの差分
ヘッダーA(変更前)B(変更後)差分
Access-Control-Allow-Originhttps://app.example.comhttps://app.example.com同じ
Access-Control-Allow-CredentialsTruetrueTrue → true
Access-Control-Allow-Methods(なし)(なし)(どちらもなし)
Access-Control-Allow-Headers(なし)(なし)(どちらもなし)
Access-Control-Max-Age(なし=既定 5 秒)(なし=既定 5 秒)同じ(有効な値 5 秒)
Access-Control-Expose-Headers(なし)(なし)(どちらもなし)

検算(この結果になる理由)

Allow-Credentials の書式は小文字の true だけ(Fetch 3.3.4・3.3.5)なので、A の True はエラー 1 件、B の true は問題なしです。差分は Allow-Credentials の 1 項目だけで、要約の判定は A のエラーが B で解消される、になります。

判定の根拠は仕様と根拠に、仕様の出典とともにまとめています。自分の入力で試すにはツールをお使いください。

このツールの制約

ご利用にあたって

  • 結果は Fetch Standard にもとづく読み解きで、個々のブラウザやプロキシ、CDN での実際の動作を保証するものではありません。
  • 本番の設定を変えるときは、検証環境で実際のブラウザの開発者ツールを使い、リクエストが通ることを確認してください。

ほかの入力例