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"); // Returns 'gzip'

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

仕様書

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

ブラウザーの互換性

BCD tables only load in the browser

関連情報