要求のフェッチ: スコープ、グローバル
フェ ッチ要求 API には、アプリケーションがサーバーから JSON、テキスト、バイナリデータなどのリソースを非同期に要求し、応答を処理できるように、要求オブジェクトを作成または取得するためのメソッドが含まれています。この API は、GET、POST、PUT、DELETE などのさまざまな HTTP メソッドをサポートしています。
- fetch:fetch(文字列、リソース、オブジェクトオプション):ネットワークからリソースをフェッチするプロセスを開始します。
- ヘッダーのフェッチ - スコープ対象、グローバル:要求ヘッダーと応答ヘッダーを取得して変更します。
- 要求のフェッチ: スコープ、グローバル:新しい要求オブジェクトを作成します。
- RequestInit のフェッチ :スコープ対象、グローバル:フェッチ要求を構成するオプションを設定します。
- 応答をフェッチ: スコープ指定、グローバル:新しい応答オブジェクトを作成します。
フェッチアクションをサポートするために、システムプロパティ glide.hosts.allowlist を使用すると、フェッチメソッドがアクセスできるホストを制御できます。これは、 RestMessageV2 などの HTTP API や上記の API に適用されます。glide.hosts.allowlist の詳細については、「Available system properties」を参照してください。
要求プロパティ
フェ ッチ要求 API は、HTTP 要求に関する詳細情報を提供するいくつかの読み取り専用プロパティをサポートしています。これらには、 url (要求の URL)、 method (HTTP メソッド)、 ヘッダー (関連するヘッダー)、 および body (ストリームとしての要求本文) が含まれます。その他のプロパティには、キャッシュ、認証情報、およびリファラーの設定が含まれます。これらのプロパティは読み取り専用であるため、アクセスすることはできますが、要求の作成後に変更することはできません。各プロパティの詳細については、「 https://developer.mozilla.org/en-US/docs/Web/API/Request」を参照してください。
| プロパティ名 | 説明 | 例 |
|---|---|---|
| 本文 | 準備完了専用プロパティ。要求に追加された本文の内容を含む、バイトデータの読み取り可能なストリームが含まれます。 データタイプ/値:ReadableStream または null。 |
|
| bodyUsed | 準備完了専用プロパティ。要求本体がまだ読み取られたかどうかを示すフラグ。 許容値:
データタイプ:ブール |
|
| キャッシュ | 準備完了専用プロパティ。要求がブラウザーの HTTP キャッシュとやり取りする方法を制御する要求のキャッシュモードが含まれています。 許容値:
データタイプ:文字列 |
|
| 認証情報 | 読み取り専用です。credentials オプションの Request() コンストラクターに指定された値を反映します。認証情報は、cookie、TLS クライアント証明書、またはユーザー名とパスワードを含む認証ヘッダーです。 許容値:
データタイプ:文字列 |
|
| 宛先 | 読み取り専用です。要求されているコンテンツのタイプを説明する文字列を返します。 許容値:
データタイプ:文字列 |
|
| ヘッダー | 読み取り専用です。要求に関連付けられたヘッダーオブジェクト。 データタイプ:ヘッダーオブジェクト |
|
| 完全性 | 読み取り専用です。要求のサブリソース整合性値。 値:要求の作成時に options.integrity 引数として渡された値。整合性が指定されていない場合、このプロパティは |
|
| 履歴ナビゲーション | 読み取り専用です。要求が履歴ナビゲーションであるかどうかを示すブール値。 許容値:
データタイプ:ブール |
|
| キープアライブ | 読み取り専用です。要求のキープアライブ設定 (true または false)。要求で整合性の値が渡されない場合は、空の文字列を返します。 許容値:
データタイプ:ブール |
|
| メソッド | 読み取り専用です。要求のメソッド (GET、 POST など)データタイプ:文字列 |
|
| mode | 読み取り専用です。要求のモード。クロスオリジン要求が有効な応答につながるかどうか、および応答のどのプロパティが読み取り可能であるかを判断するために使用されます。 許容値:
要求はさまざまな方法で開始できますが、要求のモードは、要求が開始された特定の手段によって異なります。たとえば、 Request() コンストラクターを使用して Request オブジェクトが作成されると、その Request の mode プロパティの値が cors に設定されます。ただし、Request() 以外で作成された要求の場合は、 コンストラクタ、no-cors は通常モードとして使用されます。たとえば、要求がマークアップから開始される埋め込みリソースの場合、CrossOrigin 属性が存在しない限り、ほとんどの場合、要求は no-cors モード、つまり <link> または <script> elements (except when used with modules), or <img>, <audio>,<video>, <object>, <embed>, or <iframe> elements. データタイプ:文字列 |
|
| リダイレクト | 読み取り専用です。リダイレクトの処理方法のモード。 有効な値:
データタイプ:文字列 デフォルト:フォロー |
|
| リファラー | 読み取り専用です。要求のリファラー ( クライアント、 リファラーなし、URL など)。no-referrer の値は空の文字列を返します。データタイプ:文字列 |
|
| リファラーポリシー | 読み取り専用です。要求とともに Referrer ヘッダーに送信される Referrer 情報を管理する Referrer ポリシー。 データタイプ:文字列 |
|
| シグナル | 読み取り専用です。要求に関連付けられた AbortSignal。 データタイプ:文字列 |
|
| URL | 読み取り専用です。要求の URL。 データタイプ:文字列 |
|
要求をフェッチ:request()
新しい要求オブジェクトを作成します。オプションで、URL またはオブジェクトリソースから Request オブジェクトを作成します。
| 名前 | タイプ | 説明 |
|---|---|---|
| 入力 | 文字列またはオブジェクト | オプション。取得するリソース。 有効な値:
|
| オプション | オブジェクト | オプション。要求に適用するカスタム設定を含む RequestInit のフェッチ :スコープ対象、グローバル オブジェクト。既存の要求から新しい要求を作成する場合、新しい要求に設定されたオプションによって、元の要求の対応するオプションが上書きされます。 デフォルト:すべてのプロパティのデフォルト値を返します。 |
次の例は、 Request() コンストラクターを使用して新しい Request オブジェクトを作成する方法を示しています。
var myImage = document.querySelector("img");
var myRequest = new Request("flowers.jpg");
次の例は、入力パラメーターを使用して URL またはオブジェクトを取得する新しい Request オブジェクトを作成する方法を示しています。
var myImage = document.querySelector("img");
var myRequest = new Request("flowers.jpg");
fetch(myRequest)
.then((response) => response.blob())
.then((response) => {
var objectURL = URL.createObjectURL(response);
myImage.src = objectURL;
});
次の例は、オブジェクトリテラルを使用して、ヘッダーオプションを持つ新しい Request オブジェクトを作成する方法を示しています。
var myImage = document.querySelector("img");
var myRequest = new Request("flowers.jpg");
var options = {
headers: {
"Cache-Control": "max-age=60480",
},
};
要求をフェッチ:arrayBuffer()
要求本文を読み取り、arrayBuffer で解決される Promise として返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| Promise | arrayBuffer で解決される Promise。 |
arrayBuffer() メソッドを使用して新しいリクエストを作成する方法を以下に示します。
var myArray = new Uint8Array(10);
var request = new Request("/myEndpoint", {
method: "POST",
body: myArray,
});
request.arrayBuffer().then((buffer) => {
// perform an action with the buffer sent in the request
});
要求をフェッチ:blob()
要求本文を読み取り、Blob で解決される Promise として返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| オブジェクト | Blob で解決される Promise。 |
次の例は、 blob() メソッドを使用して要求を形成する方法を示しています。
var obj = { hello: "world" };
var myBlob = new Blob([JSON.stringify(obj, null, 2)], {
type: "application/json",
});
var request = new Request("/myEndpoint", {
method: "POST",
body: myBlob,
});
request.blob().then((myBlob) => {
// do something with the blob sent in the request
});
要求をフェッチ:bytes()
要求本文を読み取り、Uint8Array で解決される Promise として返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| オブジェクト | Uint8Array で解決される Promise。 |
bytes() メソッドを使用して新しい要求を作成する方法を次に示します。
var myArray = new Uint8Array(10);
var request = new Request("/myEndpoint", {
method: "POST",
body: myArray,
});
request.bytes().then((buffer) => {
// do something with the buffer sent in the request
});
要求をフェッチ:clone()
現在の要求オブジェクトのコピーを作成します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| 要求 | clone() が呼び出された要求の正確なコピーである要求オブジェクト。clone() は、要求本体が既に使用されている場合、エラーをスローします。要求を変更する場合は、 要求をフェッチ:request() コンストラクターを使用します。 |
次の例は、 request() を使用して新しい要求を作成し、 clone() を使用してそれをコピーする方法を示しています。
var myRequest = new Request("flowers.jpg");
var newRequest = myRequest.clone(); // a copy of the request is now stored in newRequest
要求をフェッチ:formData()
要求本文を読み取り、FormData オブジェクトで解決される Promise として返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| なし | FormData オブジェクトで解決される Promise。 |
次の例は、 request() を使用して新しいリクエストを作成し、formData() メソッドで解決して FormData オブジェクトとして解決する方法を示しています。
var formData = new FormData();
var fileField = document.querySelector('input[type="file"]');
formData.append("username", "abc123");
formData.append("avatar", fileField.files[0]);
var request = new Request("/myEndpoint", {
method: "POST",
body: formData,
});
request.formData().then((data) => {
// do something with the formdata sent in the request
});
要求をフェッチ:json()
要求本文を読み取り、コンテンツを JSON として解析して、解析された結果で解決される promise を返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| オブジェクト | JavaScript オブジェクトに解決される promise (非同期操作の最終的な完了または失敗とその結果の値)。このオブジェクトは、オブジェクト、アレイ、文字列、数値など、JSON で表すことができるものであれば何でもかまいません。 |
次の例は、 request() と json() を使用して新しい要求を作成し、要求を解析して JSON オブジェクトとして返す方法を示しています。
var obj = { hello: "world" };
var request = new Request("/myEndpoint", {
method: "POST",
body: JSON.stringify(obj),
});
request.json().then((data) => {
// process the data sent in the request
});
要求をフェッチ:text()
要求本文を読み取り、UTF-8 を使用してデコードされた文字列で解決される Promise として返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| なし | UTF-8 形式の文字列で解決される Promise です。 |
この例は、 text() を呼び出す方法を示しています。
var text = "Hello world";
var request = new Request("/myEndpoint", {
method: "POST",
body: text,
});
request.text().then((text) => {
// process the data sent in the request
});