ヘッダーのフェッチ :スコープ対象、グローバル

  • リリースバージョン: Zurich
  • 更新日 2025年07月31日
  • 所要時間:14分
  • Fetch Headers API を使用すると、要求ヘッダーまたは応答ヘッダーのリストのヘッダーを取得、設定、追加、および削除できます。

    この API は、外部 Web サイトからリソースをフェッチするためのさまざまなアクションを提供する 一連の Fetch API の一部です。完全な Fetch API コレクションには、次のものが含まれます。

    フェッチアクションをサポートするために、システムプロパティ glide.hosts.allowlist では、fetch メソッドがアクセスできるホストを制御できます。これは、 RestMessageV2 や上記のような HTTP API に適用されます。glide.hosts.allowlist の詳細については、「Available system properties」を参照してください。

    ヘッダーをフェッチ:ヘッダー (init)

    Headers() コンストラクターは、新しい空の Headers オブジェクトを作成します。また、 init パラメーターを使用して、新しい Headers オブジェクトを作成し、HTTP ヘッダーのリストを事前入力することもできます。

    注:
    既存の Headers オブジェクトにヘッダーを追加するには、 ヘッダーのフェッチ:append(文字列名, 文字列値) を使用します。
    表 : 1. パラメーター
    名前 タイプ 説明
    初期化 オブジェクト オプション。新しい Headers オブジェクトに事前入力する HTTP ヘッダーを含むオブジェクトリテラル。
    有効な値:
    • 文字列値を持つオブジェクトリテラル
    • 名前と値のペアのアレイ
    • 既存の Headers オブジェクト (新しいオブジェクトが既存のオブジェクトからデータをコピーする場合)。

    デフォルト:空のヘッダーオブジェクトを作成します

    次の例は、 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(文字列名, 文字列値) を使用します。

    表 : 2. パラメーター
    名前 タイプ 説明
    name 文字列 必須。Headers オブジェクトに追加する HTTP ヘッダーの名前。
    文字列 必須。追加する HTTP ヘッダーの値。
    表 : 3. 戻り値
    タイプ 説明
    なし

    次の例は、 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 オブジェクトからヘッダーを削除します。

    表 : 4. パラメーター
    名前 タイプ 説明
    name 文字列 Headers オブジェクトから削除する HTTP ヘッダーの名前。
    表 : 5. 戻り値
    タイプ 説明
    なし

    次の例は、最初に 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 オブジェクトに含まれるすべてのキーと値のペア (文字列で表される) を循環できる反復子を返します。

    表 : 6. パラメーター
    名前 タイプ 説明
    なし
    表 : 7. 返される内容
    タイプ 説明
    反復 子 キーと値のペアの両方が 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 回実行します。

    コールバック関数は、削除されたキーに対しては実行されませんが、値が未定義の場合でも既存のキーに対しては実行されます。

    表 : 8. パラメーター
    名前 タイプ 説明
    callbackFn 関数 Headers オブジェクトのキー/値のペアごとに実行する関数。

    callbackFn(文字列キー、文字列値) の形式に準拠します。

    callbackFn.value 文字列 ヘッダーエントリの値。
    callbackFn.key 文字列 ヘッダーエントリの名前。
    callBackFn.object ヘッダー 反復する Headers オブジェクト。
    thisArg オブジェクト コールバックの実行時に使用する値。
    表 : 9. 戻り値
    タイプ 説明
    なし

    次の例では、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 を返します。

    表 : 10. パラメーター
    名前 タイプ 説明
    name 文字列 ヘッダー値を取得する HTTP ヘッダーの名前 (大文字と小文字は区別されません)。
    表 : 11. 戻り値
    タイプ 説明
    文字列 取得されたヘッダーの値 (文字列として表されます)。ヘッダーが設定されていない場合は 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 ヘッダーを返します。

    表 : 12. パラメーター
    名前 タイプ 説明
    なし
    表 : 13. 返される内容
    タイプ 説明
    文字列のアレイ 応答に関連付けられたすべての 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 オブジェクトに指定されたヘッダーが含まれているかどうかを示すブール値を返します。

    表 : 14. パラメーター
    名前 タイプ 説明
    name 文字列 Headers オブジェクトに存在するかどうかを確認する HTTP ヘッダーの名前。
    表 : 15. 戻り値
    タイプ 説明
    ブール 指定されたヘッダーが Headers オブジェクトに存在するかどうかを示すフラグ。指定されたヘッダーが有効な HTTP ヘッダー名でない場合は、TypeError が返されます。
    可能な値:
    • true:ヘッダーはオブジェクトに存在します。
    • false:ヘッダーがオブジェクトに存在しません。

    次の例では、 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()メソッドを使用して、すべてのヘッダーキーを返します。

    表 : 16. パラメーター
    名前 タイプ 説明
    なし
    表 : 17. 返される内容
    タイプ 説明
    反復 子 ヘッダーキーが文字列として表される反復子を返します。

    次の例は、キーを持つ 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(文字列名, 文字列値) メソッドを使用します。

    表 : 18. パラメーター
    名前 タイプ 説明
    name 文字列 新しい値を設定する HTTP ヘッダーの名前。指定された名前が HTTP ヘッダーの名前でない場合は、TypeError をスローします。
    文字列 指定したヘッダーに設定する新しい値。
    表 : 19. 戻り値
    タイプ 説明
    なし

    次の例は、 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() メソッドを使用します。

    表 : 20. パラメーター
    名前 タイプ 説明
    なし
    表 : 21. 返される内容
    タイプ 説明
    文字列 ヘッダー値が文字列として表される反復子を返します。

    次の例は、 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