Headers: set() メソッド

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2017.

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

set()Headers インターフェイスのメソッドで、 Headers オブジェクトの中にある既存のヘッダーに新しい値を設定するか、ヘッダーがまだ存在しない場合には追加するかします。

set()Headers.append の違いは、指定されたヘッダーがすでに存在し、複数の値を受け入れられる場合、 set() は既存の値を新しい値で上書きするのに対し、 Headers.append は新しい値を値の集合の最後に追加する点です。

セキュリティ上の理由から、いくつかのヘッダーはユーザーエージェントでしか制御できません。これには、禁止ヘッダー名禁止レスポンスヘッダー名があります。

構文

js
set(name, value)

引数

name

新しい値に設定したい HTTP ヘッダーの名前。指定された名前が HTTP ヘッダーの名前でない場合、このメソッドで TypeError 例外が発生します。

value

新たに設定したい値です。

返値

なし (undefined)。

空の Headers オブジェクトを作成するのは簡単です。

js
const myHeaders = new Headers(); // Currently empty

これに Headers.append を使用してヘッダーを追加し、次に set() を使用してこのヘッダーに新しい値を設定することができます。

js
myHeaders.append("Content-Type", "image/jpeg");
myHeaders.set("Content-Type", "text/html");

指定されたヘッダーがまだ存在しない場合、set() はそれを作成し、その値を指定された値に設定します。指定されたヘッダーが既に存在し、複数の値を受け入れられる場合は、 set() は既存の値を新しい値で上書きします。

js
myHeaders.set("Accept-Encoding", "deflate");
myHeaders.set("Accept-Encoding", "gzip");
myHeaders.get("Accept-Encoding"); // 'gzip' を返す

新しい値を上書きするのではなく、値に追加するために Headers.append が必要になります。

仕様書

Specification
Fetch
# ref-for-dom-headers-set①

ブラウザーの互換性

Report problems with this compatibility data on GitHub
desktopmobileserver
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
Deno
Node.js
set

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support

関連情報