MDN wants to talk to developers like you: https://qsurvey.mozilla.com/s3/a3e7b5301fea

これは実験段階の機能です。
この機能は複数のブラウザーで開発中の状態にあります。互換性テーブルをチェックしてください。また、実験段階の機能の構文と挙動は、仕様変更に伴い各ブラウザーの将来のバージョンで変更になる可能性があることに注意してください。

Fetch APIHeaders インターフェースは、HTTP リクエストとレスポンスのヘッダ上のさまざまなアクションを実行します。これらのアクションには、取得や設定、追加、削除が含まれます。Headers オブジェクトは、最初は空で 0 個以上の名前と値のペアで構成される関連するヘッダリストを持っています。追加には append() を見てください)のようなメソッドを使用できます。このインタフェースのすべてのメソッドで、ヘッダ名は大文字と小文字を区別しないバイトシーケンスにマッチしています。

セキュリティ上の理由から、いくつかのヘッダはユーザーエージェントでしか制御できません。それらのヘッダには、forbidden header namesforbidden response header names が含まれます。

ヘッダは関連するガードも持っています。ガードは immutablerequestrequest-no-corsresponsenone のいずれかの値を取ります。これはヘッダを変更する set() メソッドと delete() メソッド、append() メソッドに影響を与えます。詳細は Guard を見てください。

Request.headers プロパティと Response.headers プロパティ経由で Headers オブジェクトを取得することも、Headers.Headers() コンストラクタを使用して新しい Headers オブジェクトを生成することもできます。

Headers を実装したオブジェクトは、entries() の代わりに直接 for...of 構文で使用できます: for (var p of myHeaders)for (var p of myHeaders.entries()) は同等です。

ノートHTTP ヘッダ を読むことで、利用できるヘッダをより多く見つけることができるでしょう。

コンストラクタ

Headers.Headers()
新しい Headers オブジェクトを生成する。

メソッド

Headers.append()
Headers オブジェクト内の既存のヘッダに新しい値を追加するか、まだ存在しない場合はヘッダを追加する。
Headers.delete()
Headers オブジェクトからヘッダを削除する。
Headers.entries()
このオブジェクトに含まれるすべてのキー/値 ペアを通して処理するための iterator を返す。
Headers.get()
Headers オブジェクト内から指定したヘッダの最初の値を返す。
Headers.getAll()
Headers オブジェクト内で指定されたヘッダのすべての値を配列として返す。
Headers.has()
Headers オブジェクトが特定のヘッダを含むかどうかを示す boolean 値を返す。
Headers.keys()
このオブジェクトに含まれるキー/値 ペアのすべてのキーを通して処理するための iterator を返す。
Headers.set()
オブジェクト内の既存のヘッダに新しい値を設定するか、まだ存在しない場合はヘッダを追加する。
Headers.values()
このオブジェクトに含まれるキー/値 ペアのすべての値を通して処理するための iterator を返す。

ノートHeaders.set()Headers.append() の明確な違いは、複数の値を受け入れる特定のヘッダが既に存在しているときの挙動です。Headers.set() は既存の値を新しい値で上書きしますが、Headers.append() は既存の値の末尾に新しい値を追加します。サンプルコードはそれぞれの専用ページで確認してください。

ノート有効な HTTP ヘッダ名 ではない名前の参照を渡そうとすると、すべての Headers メソッドは TypeError をスローします。ヘッダに immutable Guard がある場合、変更操作は TypeError をスローします。そのほかの場外の場合は、沈黙理に失敗します。

次のコードスニペットでは、Headers() コンストラクタを使用して新しいヘッダを生成し、append() を使用して新しいヘッダを追加しています。その後、get() を使用してヘッダの値を返しています:

var myHeaders = new Headers();

myHeaders.append('Content-Type', 'text/xml');
myHeaders.get('Content-Type') // 'text/xml' を返す。

仕様

仕様 状態 コメント
Fetch
Headers の定義
現行の標準  

ブラウザ実装状況

機能 Chrome Firefox (Gecko) Internet Explorer Opera Safari (WebKit)
基本サポート 42
41 では設定が必要
 
39 (39)
34 では設定が必要
未サポート

29
28 では設定が必要

未サポート
entries()keys()values()for...of のサポート ? 44 (44) ? ? ?
機能 Android Firefox Mobile (Gecko) Firefox OS (Gecko) IE Phone Opera Mobile Safari Mobile Chrome for Android
基本サポート 未サポート 未サポート 未サポート 未サポート 未サポート 未サポート 未サポート
entries()keys()values()for...of のサポート ? 44.0 (44) 2.5 ? ? ? ?

関連項目

 

ドキュメントのタグと貢献者

 このページの貢献者: kei-itof, hamasaki, chikoski, YuichiNukiyama
 最終更新者: kei-itof,