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

  • リリースバージョン: Yokohama
  • 更新日 2025年01月30日
  • 所要時間:4分
  • Fetch API は、要求オブジェクトと応答オブジェクトを使用してリソースをフェッチするためのメソッドを提供します。

    Fetch API は、バックグラウンドスクリプトや、HTTP 呼び出しを行うことができる場所 (REST エンドポイントなど) で使用できます。Fetch API を使用すると、ヘッダー、本文オプションなどを設定することで、単純なフェッチ要求とより複雑なフェッチ要求の両方を行うことができます。

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

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

    フェッチ:fetch(文字列、リソース、オブジェクトオプション)

    ネットワークからリソースをフェッチするプロセスを開始し、応答が利用可能になると実行される Promise を返します。

    表 : 1. パラメーター
    名前 タイプ 説明
    リソース 文字列またはオブジェクト 必須。フェッチするリソース。
    指定できる値:
    • フェッチするリソースの URL を提供する文字列または文字列化されたオブジェクト (URL オブジェクトを含む)。URL は、ドキュメントの baseURI であるベース URL に対する相対パスにすることができます。
    • 要求のフェッチ:request()オブジェクト。
    オプション オブジェクト オプション。要求に適用するカスタム設定を含む RequestInit のフェッチ:スコープ対象、グローバル オブジェクト。

    デフォルト:要求はカスタマイズ設定なしで渡されます。

    表 : 2. 戻り値
    タイプ 説明
    オブジェクト 応答オブジェクトに解決される Promise。
    fetch() Promise は、リクエスト URL の形式が正しくない、またはネットワークエラーなどにより、リクエストが失敗した場合にのみ拒否されます。
    注:
    fetch() の promise は、サーバーが 404 や 504 などのエラーを示す HTTP ステータスコードで応答した場合、却下されたとは見なされません。この場合、 then() ハンドラーを使用して ok と status 応答のフェッチ :スコープ対象、グローバルプロパティを確認します。
    次の例は、 要求のフェッチ:request() を使用して新しい Request オブジェクトを作成し、 次に fetch() そのデータを取得する方法を示しています。コードの各部分がどのように使用されるかを簡単に説明します。
    async function fetchIncidents() {
        const url = 'https://your-instance.service-now.com/api/now/table/incident';
        const username = 'your_username';
        const password = 'your_password';
    
        // Create a Request object
        const request = new Request(url, {
            method: 'GET',
            headers: {
                'Content-Type': 'application/json',
                Authorization: 'Basic ' + btoa(`${username}:${password}`)
            }
        });
    
        // Fetch data and use response.json() to process it
        const response = await fetch(request);
        const data = await response.json(); // Parse the response to JSON
        console.log(data.result); // Log the incidents data to system logs
    }
    
    fetchIncidents();

    出力:

    [
        { "number": "INC0001", "short_description": "System outage" },
        { "number": "INC0002", "short_description": "Password reset request" }
    ]