Headers: getSetCookie() メソッド

メモ: この機能はウェブワーカー内で利用可能です。

getSetCookie()Headers インターフェイスのメソッドで、レスポンスに関連付けられたすべての Set-Cookie ヘッダーの値の入った配列を返します。これによって Headers オブジェクトは複数の Set-Cookie ヘッダーを扱えるようになります。

この方法は、サーバー環境(Node.js など)での使用を意図しています。 ブラウザーは、フェッチ仕様に従って、フロントエンドの JavaScript コードが Set-Cookie ヘッダーにアクセスすることをブロックします。フェッチ仕様は、 Set-Cookie禁止レスポンスヘッダー名として定義しており、フロントエンドのコードに公開されるすべてのレスポンスからフィルタリングして除外する必要があります。

構文

js
getSetCookie()

引数

なし。

返値

レスポンスに関連付けられたすべての異なる Set-Cookie ヘッダーの値を表す文字列の配列です。

Set-Cookie ヘッダーが設定されていない場合、このメソッドは空配列 ([ ]) を返します。

上記で触れたように、クライアント上で次のコードが動作しても、結果は返されません。 Set-Cookie は、ネットワーク経由で取得された Headers からフィルターで除外されます。

js
fetch("https://example.com").then((response) => {
  console.log(response.headers.getSetCookie());
  // ヘッダー値は返されない
});

しかし、次のコードは複数の Set-Cookie 値を照会するために使用することができます。これはサーバー上でより有用ですが、クライアントでもうまくいくでしょう。

js
const headers = new Headers({
  "Set-Cookie": "name1=value1",
});

headers.append("Set-Cookie", "name2=value2");

headers.getSetCookie();
// ["name1=value1", "name2=value2"] を返す

仕様書

Specification
Fetch
# dom-headers-getsetcookie

ブラウザーの互換性

BCD tables only load in the browser

関連情報