ヘッダーのフェッチ :スコープ対象、グローバル
Fetch Headers API を使用すると、要求ヘッダーまたは応答ヘッダーのリストのヘッダーを取得、設定、追加、および削除できます。
- フェッチ:fetch(文字列、リソース、オブジェクトオプション):ネットワークからリソースをフェッチするプロセスを開始します。
- ヘッダーのフェッチ :スコープ対象、グローバル:要求と応答のヘッダーを取得して変更します。
- 要求のフェッチ :スコープ対象、グローバル:新しい要求オブジェクトを作成します。
- RequestInit のフェッチ:スコープ対象、グローバル:フェッチ要求を構成するオプションを設定します。
- 応答のフェッチ :スコープ対象、グローバル:新しい応答オブジェクトを作成します。
フェッチアクションをサポートするために、システムプロパティ glide.hosts.allowlist では、fetch メソッドがアクセスできるホストを制御できます。これは、 RestMessageV2 や上記のような HTTP API に適用されます。glide.hosts.allowlist の詳細については、「Available system properties」を参照してください。
ヘッダーをフェッチ:ヘッダー (init)
Headers() コンストラクターは、新しい空の Headers オブジェクトを作成します。また、 init パラメーターを使用して、新しい Headers オブジェクトを作成し、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 | 文字列 | 必須。Headers オブジェクトに追加する HTTP ヘッダーの名前。 |
| 値 | 文字列 | 必須。追加する 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(文字列名)
現在の Headers オブジェクトからヘッダーを削除します。
| 名前 | タイプ | 説明 |
|---|---|---|
| name | 文字列 | Headers オブジェクトから削除する 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 オブジェクトに含まれるすべてのキーと値のペア (文字列で表される) を循環できる反復子を返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| 反復 子 | キーと値のペアの両方が String オブジェクトである反復子オブジェクトを返します。 |
次の例は、テスト用の 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)
Headers オブジェクトのキー/値のペアごとにコールバック関数を 1 回実行します。
コールバック関数は、削除されたキーに対しては実行されませんが、値が未定義の場合でも既存のキーに対しては実行されます。
| 名前 | タイプ | 説明 |
|---|---|---|
| callbackFn | 関数 | Headers オブジェクトのキー/値のペアごとに実行する関数。
|
| callbackFn.value | 文字列 | ヘッダーエントリの値。 |
| callbackFn.key | 文字列 | ヘッダーエントリの名前。 |
| callBackFn.object | ヘッダー | 反復する Headers オブジェクト。 |
| 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 | 文字列 | Headers オブジェクトに存在するかどうかを確認する HTTP ヘッダーの名前。 |
| タイプ | 説明 |
|---|---|
| ブール | 指定されたヘッダーが Headers オブジェクトに存在するかどうかを示すフラグ。指定されたヘッダーが有効な 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 をスローします。 |
| 値 | 文字列 | 指定したヘッダーに設定する新しい値。 |
| タイプ | 説明 |
|---|---|
| なし |
次の例は、 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