要求のフェッチ :スコープ対象、グローバル
Fetch Request API には、アプリケーションがサーバーから JSON、テキスト、バイナリデータなどのリソースを非同期に要求し、応答を処理できるように、Request オブジェクトを作成または取得するためのメソッドが含まれています。この API は、GET、POST、PUT、DELETE などのさまざまな HTTP メソッドをサポートしています。
- フェッチ:fetch(文字列、リソース、オブジェクトオプション):ネットワークからリソースをフェッチするプロセスを開始します。
- ヘッダーのフェッチ :スコープ対象、グローバル:要求と応答のヘッダーを取得して変更します。
- 要求のフェッチ :スコープ対象、グローバル:新しい要求オブジェクトを作成します。
- RequestInit のフェッチ:スコープ対象、グローバル:フェッチ要求を構成するオプションを設定します。
- 応答のフェッチ :スコープ対象、グローバル:新しい応答オブジェクトを作成します。
フェッチアクションをサポートするために、システムプロパティ glide.hosts.allowlist では、fetch メソッドがアクセスできるホストを制御できます。これは、 RestMessageV2 や上記のような HTTP API に適用されます。glide.hosts.allowlist の詳細については、「Available system properties」を参照してください。
要求プロパティ
Fetch Request API は、HTTP 要求に関する詳細情報を提供するいくつかの読み取り専用プロパティをサポートしています。これらのいくつかには、 url (リクエストの URL)、 メソッド (HTTP メソッド)、 ヘッダー (関連するヘッダー)、 本文 (ストリームとしてのリクエスト本文) が含まれます。その他のプロパティには、キャッシュ、認証情報、およびリファラーの設定が含まれます。これらのプロパティは読み取り専用です。つまり、要求の作成後はアクセスできますが、変更することはできません。各プロパティの詳細については、「 https://developer.mozilla.org/en-US/docs/Web/API/Request」を参照してください。
| プロパティ名 | 説明 | 例 |
|---|---|---|
| 本文 | 準備完了専用プロパティ。要求に追加された本文の内容を含む、読み取り可能なバイトデータのストリームが含まれます。 データタイプ/値:ReadableStream または null。 |
|
| bodyUsed | 準備完了専用プロパティ。要求本文がまだ読まれたかどうかを示すフラグ。 許容値:
データタイプ:ブーリアン |
|
| キャッシュ | 準備完了専用プロパティ。要求がブラウザーの HTTP キャッシュとやり取りする方法を制御する要求のキャッシュモードが含まれています。 指定できる値:
データタイプ:文字列 |
|
| 認証情報 | 読み取り専用です。認証情報オプションの Request() コンストラクターに指定された値を反映します。認証情報は、Cookie、TLS クライアント証明書、またはユーザー名とパスワードを含む認証ヘッダーです。 指定できる値:
データタイプ:文字列 |
|
| 宛先 | 読み取り専用です。要求されているコンテンツのタイプを説明する文字列を返します。 指定できる値:
データタイプ:文字列 |
|
| ヘッダー | 読み取り専用です。要求に関連付けられたヘッダーオブジェクト。 データタイプ:Headers オブジェクト |
|
| 完全性 | 読み取り専用です。要求のサブリソース完全性値。 値:要求の作成時に options.integrity 引数として渡された値。整合性が指定されていない場合、このプロパティは |
|
| isHistoryNavigation | 読み取り専用です。要求が履歴ナビゲーションであるかどうかを示すブール値。 指定できる値:
データタイプ:ブーリアン |
|
| キープアライブ | 読み取り専用です。要求のキープアライブ設定 (true または false)。完全性値が要求で渡されない場合は、空の文字列を返します。 指定できる値:
データタイプ:ブーリアン |
|
| メソッド | 読み取り専用です。要求のメソッド (GET、 POST など)データタイプ:文字列 |
|
| mode | 読み取り専用です。要求のモード。クロスオリジン要求が有効な応答につながるかどうか、および応答のどのプロパティが読み取り可能かを判断するために使用されます。 指定できる値:
要求はさまざまな方法で開始でき、要求のモードは、要求が開始された特定の手段によって異なります。たとえば、 Request() コンストラクタを使用して Request オブジェクトが作成されると、その Request の mode プロパティの値が cors に設定されます。ただし、Request()以外で作成されたリクエストの場合 constructor、no-corsは通常モードとして使用されます。たとえば、リクエストがマークアップから開始される埋め込みリソースの場合、crossOrigin属性が存在しない限り、リクエストはほとんどの場合、no-CORSモードを使用して行われます <link> 。 <script> elements (except when used with modules), or <img>, <audio>,<video>, <object>, <embed>, or <iframe> elements. データタイプ:文字列 |
|
| redirect | 読み取り専用です。リダイレクトの処理方法のモード。 有効な値:
データタイプ:文字列 デフォルト:フォロー |
|
| リファラー | 読み取り専用です。要求のリファラー ( クライアント、 no-referrer、URL など)。no-referrer の値は空の文字列を返します。データタイプ:文字列 |
|
| referrerPolicy | 読み取り専用です。要求とともに Referrer ヘッダーで送信される参照元情報を管理する参照元ポリシー。 データタイプ:文字列 |
|
| シグナル | 読み取り専用です。要求に関連付けられた AbortSignal。 データタイプ:文字列 |
|
| URL | 読み取り専用です。要求の URL。 データタイプ:文字列 |
|
要求のフェッチ:request()
新しい要求オブジェクトを作成します。オプションで、URL またはオブジェクトリソースから要求オブジェクトを作成します。
| 名前 | タイプ | 説明 |
|---|---|---|
| 入力 | 文字列またはオブジェクト | オプション。取得するリソース。 有効な値:
|
| オプション | オブジェクト | オプション。要求に適用するカスタム設定を含む 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()
現在の Request オブジェクトのコピーを作成します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| 要求 | clone() が呼び出された要求の正確なコピーである Request オブジェクト。要求本文が既に使用されている場合、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
});