Headers: getSetCookie() メソッド
メモ: この機能はウェブワーカー内で利用可能です。
getSetCookie()
は Headers
インターフェイスのメソッドで、レスポンスに関連付けられたすべての Set-Cookie
ヘッダーの値の入った配列を返します。これによって Headers
オブジェクトは複数の Set-Cookie
ヘッダーを扱えるようになります。
この方法は、サーバー環境(Node.js など)での使用を意図しています。 ブラウザーは、フェッチ仕様に従って、フロントエンドの JavaScript コードが Set-Cookie
ヘッダーにアクセスすることをブロックします。フェッチ仕様は、 Set-Cookie
を禁止レスポンスヘッダー名として定義しており、フロントエンドのコードに公開されるすべてのレスポンスからフィルタリングして除外する必要があります。
構文
getSetCookie()
引数
なし。
返値
レスポンスに関連付けられたすべての異なる Set-Cookie
ヘッダーの値を表す文字列の配列です。
Set-Cookie
ヘッダーが設定されていない場合、このメソッドは空配列 ([ ]
) を返します。
例
上記で触れたように、クライアント上で次のコードが動作しても、結果は返されません。 Set-Cookie
は、ネットワーク経由で取得された Headers
からフィルターで除外されます。
fetch("https://example.com").then((response) => {
console.log(response.headers.getSetCookie());
// ヘッダー値は返されない
});
しかし、次のコードは複数の Set-Cookie
値を照会するために使用することができます。これはサーバー上でより有用ですが、クライアントでもうまくいくでしょう。
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