ヘッダーオブジェクト
導入
ヘッダーは、HTTP メッセージのデータ ヘッダーを表します。
Headers()
コンストラクターを通じてインスタンス オブジェクトを生成します。 Request.headers
プロパティと Response.headers
プロパティは、Headers インスタンス オブジェクトを指します。
Headers インスタンス オブジェクト内では、HTTP メッセージ ヘッダーはキーと値のペアの形式で保存されます。これは、「for (const p of myHeaders)」などの「for...of」ループを使用すると容易になります。新しく作成された Headers インスタンス オブジェクトは内部的には空であるため、append()
メソッドを使用してキーと値のペアを追加する必要があります。
コンストラクター
Headers()
コンストラクターは、新しい Headers インスタンス オブジェクトを作成するために使用されます。
const myHeaders = 新しいヘッダー();
HTTP ヘッダーを表すオブジェクト、または別の Headers インスタンス オブジェクトをパラメーターとして受け入れることができます。
const httpHeaders = {
"Content-Type": "image/jpeg",
"X-My-Custom-Header": "ジークはクールです",
};
const myHeaders = 新しいヘッダー(httpHeaders);
最後に、キーと値のペアの配列をパラメーターとして受け入れることもできます。
const ヘッダー = [
["Set-Cookie", "greeting=hello"],
["Set-Cookie", "name=world"],
];
const myHeaders = 新しいヘッダー(ヘッダー);
##インスタンスメソッド
追加()
append()
メソッドはフィールドを追加するために使用されます。フィールドがすでに存在する場合は、新しい値が既存の値の末尾に追加されます。
2 つのパラメータを受け入れます。1 つ目はフィールド名、2 つ目はフィールド値です。戻り値はありません。
append(名前, 値)
以下に使用例を示します。
const myHeaders = 新しいヘッダー();
myHeaders.append("Content-Type", "image/jpeg");
以下は同名のフィールドが既に存在する場合です。
myHeaders.append("Accept-Encoding", "deflate");
myHeaders.append("Accept-Encoding", "gzip");
myHeaders.get("Accept-Encoding"); // 'deflate、gzip'
上の例では、Accept-Encoding
フィールドがすでに存在しているため、append()
によって元の値の末尾に新しい値が追加されます。
消去()
delete()
はキーと値のペアを削除するために使用され、パラメータ name
は削除されたフィールドの名前を指定します。
削除(名前)
パラメータ name
が有効なフィールド名ではない場合、または削除できないフィールドである場合、上記のコマンドはエラーをスローします。
以下に使用例を示します。
const myHeaders = 新しいヘッダー();
myHeaders.append("Content-Type", "image/jpeg");
myHeaders.delete("コンテンツタイプ");
エントリ()
entries()
メソッドは、すべてのキーと値のペアを走査し、for...of
ループで使用するイテレータ ポインタを返すために使用されます。
const myHeaders = 新しいヘッダー();
myHeaders.append("Content-Type", "text/xml");
myHeaders.append("Vary", "Accept-Language");
for (myHeaders.entries() の const ペア) {
console.log(`${ペア[0]}: ${ペア[1]}`);
}
forEach()
forEach()
メソッドは、すべてのキーと値のペアを走査し、指定されたキーと値のペアごとに指定された関数を実行するために使用されます。
最初のパラメータはコールバック関数 callbackFn
で、2 番目のパラメータ thisArg
は callbackFn
によって使用される this オブジェクトです。
forEach(コールバックFn)
forEach(callbackFn, thisArg)
コールバック関数 callback
は次のパラメータを受け取ります。
- 値: 現在のフィールドの値。
- キー: 現在のフィールド名。
- オブジェクト: 現在実行中のヘッダー オブジェクト。
以下に使用例を示します。
const myHeaders = 新しいヘッダー();
myHeaders.append("コンテンツタイプ", "アプリケーション/json");
myHeaders.append("Cookie", "これはデモ Cookie です");
myHeaders.append("圧縮", "gzip");
myHeaders.forEach((値, キー) => {
console.log(`${key} ==> ${value}`);
});
得る()
get()
メソッドは、指定されたフィールドのフィールド値を取得するために使用され、そのパラメータはフィールド名です。フィールド名が不正な場合 (たとえば、中国語の文字が含まれている場合)、エラーがスローされます。フィールドが現在の Headers オブジェクトに存在しない場合は、「null」が返されます。
取得(名前)
以下に使用例を示します。
myHeaders.append("Content-Type", "image/jpeg");
myHeaders.get("コンテンツタイプ"); // "画像/jpeg"
現在のフィールドに複数の値がある場合、get()
はすべての値を返します。
getSetCookie()
getSetCookie()
は、Set-Cookie
によって設定されたすべての Cookie 値を含む配列を返します。
const ヘッダー = 新しいヘッダー({
"Set-Cookie": "名前1=値1",
});
headers.append("Set-Cookie", "name2=value2");
headers.getSetCookie();
// ["名前1=値1", "名前2=値2"]
もっている()
has()
は、Headers オブジェクトに指定されたフィールドが含まれているかどうかを示すブール値を返します。
(名前)がいます
パラメータ「name」が有効な HTTP ヘッダー フィールド名ではない場合、このメソッドはエラーを報告します。
以下に使用例を示します。
myHeaders.append("Content-Type", "image/jpeg");
myHeaders.has("コンテンツタイプ"); // true
myHeaders.has("Accept-Encoding"); // false
キー()
keys()
メソッドは、Headers データ ヘッダーのすべてのフィールド名を走査するために使用されます。 for...of
で使用する反復子オブジェクトを返します。
const myHeaders = 新しいヘッダー();
myHeaders.append("Content-Type", "text/xml");
myHeaders.append("Vary", "Accept-Language");
for (myHeaders.keys() の const キー) {
コンソール.ログ(キー);
}
セット()
set()
メソッドは、指定されたフィールドにフィールド値を追加するために使用されます。フィールドが存在しない場合はフィールドを追加し、フィールドが既に存在する場合は古い値を新しい値に置き換えます。これが append()
メソッドとの主な違いです。
最初のパラメータ name
はフィールド名で、2 番目のパラメータ value
はフィールド値です。
set(名前, 値)
以下に使用例を示します。
const myHeaders = 新しいヘッダー();
myHeaders.set("Accept-Encoding", "deflate");
myHeaders.set("Accept-Encoding", "gzip");
myHeaders.get("Accept-Encoding"); // 'gzip'
上記の例では、set()
を 2 回連続して使用して Accept-Encoding
に値を割り当てると、2 番目の値が最初の値を上書きします。
値()
values()
メソッドは、Headers オブジェクトのフィールド値を反復処理するために使用されます。 for...of
で使用する反復子オブジェクトを返します。
const myHeaders = 新しいヘッダー();
myHeaders.append("Content-Type", "text/xml");
myHeaders.append("Vary", "Accept-Language");
for (myHeaders.values() の定数値) {
console.log(値);
}
作者: wangdoc
アドレス: https://wangdoc.com/
ライセンス: クリエイティブ・コモンズ 3.0