ヘッダーのフェッチ - スコープ対象、グローバル
Fetch Headers API を使用すると、要求ヘッダーまたは応答ヘッダーのリストからヘッダーを取得、設定、追加、および削除できます。
- fetch:fetch(文字列、リソース、オブジェクトオプション):ネットワークからリソースを取得するプロセスを開始します。
- ヘッダーのフェッチ - スコープ対象、グローバル:要求ヘッダーと応答ヘッダーを取得して変更します。
- 要求のフェッチ: スコープ、グローバル:新しい要求オブジェクトを作成します。
- RequestInit のフェッチ :スコープ対象、グローバル:フェッチ要求を構成するオプションを設定します。
- 応答をフェッチ: スコープ指定、グローバル:新しい応答オブジェクトを作成します。
フェッチアクションをサポートするために、システムプロパティ glide.hosts.allowlist を使用すると、フェッチメソッドがアクセスできるホストを制御できます。これは、 RestMessageV2 などの HTTP API や上記の API に適用されます。glide.hosts.allowlist の詳細については、「Available system properties」を参照してください。
ヘッダーをフェッチ:headers(init)
Headers() コンストラクタは、新しい空の Headers オブジェクトを作成します。init パラメーターを使用して、HTTP ヘッダーのリストを使用して新しいヘッダーオブジェクトを作成し、事前入力することもできます。
| 名前 | タイプ | 説明 |
|---|---|---|
| 初期化 | オブジェクト | オプション。新しい Headers オブジェクトに事前入力する HTTP ヘッダーを含むオブジェクトリテラル。 有効な値:
デフォルト:空のヘッダーオブジェクトを作成します |
次の例は、 Headers() コンストラクターを使用して、ヘッダーのあるオブジェクトとヘッダーのない新しい Headers オブジェクトを作成する方法を示しています。
//Intializes an empty Headers object.
var headers = new Headers();
//Sets the new Headers object with a list of headers.
var httpHeaders = {
"Content-Type": "application/json",
"X-My-Custom-Header": "XYZ",
};
var myHeaders = new Headers(httpHeaders);
ヘッダーをフェッチ:append(文字列名, 文字列値)
Headers オブジェクト内の既存のヘッダーに新しい値を追加するか、まだ存在しない場合はヘッダーを追加します。
指定されたヘッダーがすでに存在する場合、 append() は 既存の値を指定された値に変更します。指定されたヘッダーがすでに存在し、複数の値を受け入れる場合、 append() は値セットの最後に新しい値を追加します。古い値を新しい値で上書きするには、 ヘッダーをフェッチ:set(文字列名, 文字列値)を使用します。
| 名前 | タイプ | 説明 |
|---|---|---|
| name | 文字列 | 必須です。ヘッダーオブジェクトに追加する HTTP ヘッダーの名前。 |
| value | 文字列 | 必須です。追加する HTTP ヘッダーの値。 |
| タイプ | 説明 |
|---|---|
| なし |
次の例は、 append() を使用してヘッダーを追加する方法を示しています。
var myHeaders = new Headers(); // Currently empty
myHeaders.append("Content-Type", "image/jpeg");
myHeaders.get("Content-Type"); // Returns 'image/jpeg'
出力:
“image/jpeg”
次の例は、複数の値を受け入れる新しいヘッダーを追加する方法を示しています。
var myHeaders = new Headers(); // Currently empty
myHeaders.append("Accept-Encoding", "deflate");
myHeaders.append("Accept-Encoding", "gzip");
myHeaders.get("Accept-Encoding"); // Returns 'deflate, gzip'
出力:
{“deflate”, “gzip”}
ヘッダーをフェッチ:delete(文字列名)
現在のヘッダーオブジェクトからヘッダーを削除します。
| 名前 | タイプ | 説明 |
|---|---|---|
| name | 文字列 | ヘッダーオブジェクトから削除する HTTP ヘッダーの名前。 |
| タイプ | 説明 |
|---|---|
| なし |
次の例は、 最初に append() を使用して Headers オブジェクトにヘッダーを追加し、次に delete() を使用して同じヘッダーを削除する方法を示しています。
var myHeaders =newHeaders();// Currently empty
myHeaders.append("Content-Type","image/jpeg");
myHeaders.get("Content-Type");// Returns 'image/jpeg'
次の例は、Headers オブジェクトが既に削除されている場合、エンドポイントが値 null を返すことを示しています。
myHeaders.delete("Content-Type");
myHeaders.get("Content-Type");// Returns null, as it has been deleted
出力:
null
ヘッダーをフェッチ:entries()
Headers オブジェクトに含まれるすべてのキーと値のペア (文字列で表される) を循環できるようにする反復子を返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| 反復子 | キーと値の両方のペアが文字列オブジェクトである反復子オブジェクトを返します。 |
次の例は、テスト Headers オブジェクトを作成し、 entries() メソッドを使用して Headers オブジェクト内のすべての値の反復子を返す方法を示しています。
// Create a test Headers object
var myHeaders = new Headers();
myHeaders.append("Content-Type", "text/xml");
myHeaders.append("Vary", "Accept-Language");
// Display the key/value pairs
for (var pair of myHeaders.entries()) {
console.log(`${pair[0]}: ${pair[1]}`);
}
出力:
content-type: text/xml
vary: Accept-Language
ヘッダーをフェッチ:forEach(Function callbackFn, Object thisArg)
ヘッダーオブジェクトのキー/値のペアごとにコールバック関数を 1 回実行します。
コールバック関数は、削除されたキーに対しては実行されませんが、値が未定義の場合でも、既存のキーに対しては実行されます。
| 名前 | タイプ | 説明 |
|---|---|---|
| コールバックFn | 関数 | ヘッダーオブジェクトのキー/値のペアごとに実行する関数。
|
| callbackFn.value | 文字列 | ヘッダーエントリの値。 |
| callbackFn.key | 文字列 | ヘッダーエントリの名前。 |
| callBackFn.object | ヘッダー | 反復するヘッダーオブジェクト。 |
| thisArg | オブジェクト | コールバックを実行するときにこれとして使用する値。 |
| タイプ | 説明 |
|---|---|
| なし |
次の例では、Headers オブジェクトのキーと値のペアごとに行をログに記録します。
// Create a new test Headers object
var myHeaders = new Headers();
myHeaders.append("Content-Type", "application/json");
myHeaders.append("Cookie", "This is a demo cookie");
myHeaders.append("compression", "gzip");
// Display the key/value pairs
myHeaders.forEach((value, key) => {
console.log(`${key} ==> ${value}`);
});
出力:
compression ==> gzip
content-type ==> application/json
cookie ==> This is a demo cookie
ヘッダーをフェッチ:get(文字列名)
指定された Headers オブジェクトのすべてのヘッダー値の文字列を返します。ヘッダーが存在しない場合は null を返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| name | 文字列 | ヘッダー値を取得する HTTP ヘッダーの名前 (大文字と小文字の区別なし)。 |
| タイプ | 説明 |
|---|---|
| 文字列 | 取得されたヘッダーの値 (文字列として表されます)。ヘッダーが設定されていない場合は null。 ヘッダーが存在しない場合はエラーを返します。指定された名前が HTTP ヘッダーの名前でない場合は、タイプエラーを返します。 |
以下は、 append() を使用して複数のヘッダーを持つヘッダーオブジェクトを作成し、 get() メソッドを使用してヘッダーの値を返す方法を示しています。
var myHeaders = new Headers(); // Currently empty
myHeaders.append("Accept-Encoding", "deflate");
myHeaders.append("Accept-Encoding", "gzip");
myHeaders.get("Accept-Encoding"); // Returns "deflate, gzip"
myHeaders
.get("Accept-Encoding")
.split(",")
.map((v) => v.trimStart()); // Returns [ "deflate", "gzip"
出力:
[ "deflate", "gzip" ]
ヘッダーをフェッチ:getSetCookie()
応答に関連付けられているすべての Set-Cookie ヘッダーを返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| 文字列のアレイ | 応答に関連付けられているすべての Set-Cookie ヘッダーの値を含む文字列のアレイ。このメソッドは、Set-Cookie ヘッダーが設定されていない場合、空の配列を返します。 |
次のスクリプト例は、 getSetCookie() を使用して応答に関連付けられたヘッダー値を返す方法を示しています。
var headers = new Headers({
"Set-Cookie": "name1=value1",
});
headers.append("Set-Cookie", "name2=value2");
headers.getSetCookie();
出力:
["name1=value1", "name2=value2"]
ヘッダーをフェッチ:has(文字列名)
Headers オブジェクトに指定されたヘッダーが含まれているかどうかを示すブール値を返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| name | 文字列 | ヘッダーオブジェクトに存在するかどうかを確認するための HTTP ヘッダーの名前。 |
| タイプ | 説明 |
|---|---|
| ブーリアン | 指定されたヘッダーがヘッダーオブジェクトに存在するかどうかを示すフラグ。指定されたヘッダーが有効な HTTP ヘッダー名でない場合は、TypeError が返されます。 可能な値:
|
次の例では、 Headers() メソッドと append() メソッドを使用して、Content-Type ヘッダーを持つ Headers オブジェクトを作成および設定します。次に、この例では、 has() メソッドを使用して、Content-Type ヘッダーが Headers オブジェクトに存在するが、Accept-Coding ヘッダーが存在しないことを示します。
var myHeaders = new Headers(); // Currently empty
myHeaders.append("Content-Type", "image/jpeg");
myHeaders.has("Content-Type"); // Returns true
myHeaders.has("Accept-Encoding"); // Returns false
出力:
true
false
ヘッダーをフェッチ:keys()
Headers オブジェクトに含まれるすべてのキーを循環できる反復子を返します。
ヘッダーをフェッチ:values() メソッドを使用して、すべてのヘッダーキーを返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| 反復子 | ヘッダーキーが文字列として表される反復子を返します。 |
次の例は、キーを持つ Headers オブジェクトを作成し、 keys() メソッドを使用して使用可能なヘッダーのリストを返す方法を示しています。
// Create a test Headers object
var myHeaders = new Headers();
myHeaders.append("Content-Type", "text/xml");
myHeaders.append("Vary", "Accept-Language");
// Display the keys
for (var key of myHeaders.keys()) {
console.log(key);
}
出力:
content-type
vary
ヘッダーをフェッチ:set(文字列名, 文字列値)
Headers オブジェクト内の既存のヘッダーの値を更新するか、ヘッダーがまだ存在しない場合は、指定された値で新しいヘッダーを作成します。
データを上書きせずに既存のヘッダーに新しい値を追加するには、 ヘッダーをフェッチ:append(文字列名, 文字列値) メソッドを使用します。
| 名前 | タイプ | 説明 |
|---|---|---|
| name | 文字列 | 新しい値を設定する HTTP ヘッダーの名前。指定された名前が HTTP ヘッダーの名前でない場合は、TypeError をスローします。 |
| value | 文字列 | 指定されたヘッダーに設定する新しい値。 |
| タイプ | 説明 |
|---|---|
| なし |
次の例は、 append() を使用して新しい Headers オブジェクトにヘッダーを設定し、 set() を使用して値をリセットする方法を示しています。
var myHeaders = new Headers(); // Currently empty
myHeaders.append("Content-Type", "image/jpeg");
myHeaders.set("Content-Type", "text/html");
出力:
text/html
次の例は、Headers オブジェクトが複数の値を受け入れる場合に、そのオブジェクトに値を設定する方法を示しています。
myHeaders.set("Accept-Encoding", "deflate");
myHeaders.set("Accept-Encoding", "gzip");
myHeaders.get("Accept-Encoding");
出力:
gzip
ヘッダーをフェッチ:values()
Headers オブジェクトに含まれるすべてのヘッダー値を循環できる反復子を返します。
すべてのヘッダー値を返すには、 ヘッダーをフェッチ:keys() メソッドを使用します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| 文字列 | ヘッダー値が文字列として表される反復子を返します。 |
次の例は、 append() メソッドを使用して複数のヘッダーを持つ新しい Headers オブジェクトを最初に作成して設定し、 values() メソッドを呼び出して新しいオブジェクト内のすべてのヘッダー値のリストを返す方法を示しています。Console.log() は 行をシステムログに記録します。
// Create a test Headers object
var myHeaders = new Headers();
myHeaders.append("Content-Type", "text/xml");
myHeaders.append("Vary", "Accept-Language");
// Display the values
for (var value of myHeaders.values()) {
console.log(value);
}
出力:
text/xml
Accept-Language