Request
Baseline
Weitgehend verfügbar
*
Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit März 2017 browserübergreifend verfügbar.
* Einige Teile dieser Funktion werden möglicherweise unterschiedlich gut unterstützt.
Hinweis: Diese Funktion ist in Web Workers verfügbar.
Die Request-Schnittstelle der Fetch-API repräsentiert eine Ressourcenanforderung.
Sie können ein neues Request-Objekt mit dem Request()-Konstruktor erstellen, jedoch ist es wahrscheinlicher, dass Sie ein Request-Objekt als Ergebnis einer anderen API-Operation erhalten, wie etwa einer Service-Worker-FetchEvent.request.
Konstruktor
Request()-
Erstellt ein neues
Request-Objekt.
Instanz-Eigenschaften
Request.bodySchreibgeschützt-
Ein
ReadableStreamder Körperinhalte. Request.bodyUsedSchreibgeschützt-
Speichert
trueoderfalse, um anzuzeigen, ob der Körper in einer Anforderung bereits verwendet wurde oder nicht. Request.cacheSchreibgeschützt-
Enthält den Cache-Modus der Anforderung (z.B.
default,reload,no-cache). Request.credentialsSchreibgeschützt-
Enthält einen Wert, der steuert, ob Anmeldeinformationen in die Anforderung aufgenommen werden sollen (z.B.
omit,same-origin,include). Der Standardwert istsame-origin. Request.destinationSchreibgeschützt-
Ein String, der die Art des angeforderten Inhalts beschreibt.
Request.duplexSchreibgeschützt-
Der Duplex-Modus der Anforderung, der bestimmt, ob der Browser die gesamte Anfrage senden muss, bevor die Antwort verarbeitet wird.
Request.headersSchreibgeschützt-
Enthält das zugehörige
Headers-Objekt der Anforderung. Request.integritySchreibgeschützt-
Enthält den Subresource Integrity-Wert der Anforderung (z.B.
sha256-BpfBw7ivV8q2jLiT13fxDYAe2tJllusRSZ273h2nFSE=). -
Ein boolescher Wert, der anzeigt, ob die Anforderung eine Verlauf-Navigation ist.
-
Ein boolescher Wert, der anzeigt, ob die Anforderung ein benutzerinitiiertes Neuladen ist.
Request.keepaliveSchreibgeschützt-
Enthält die
keepalive-Einstellung der Anforderung (trueoderfalse), was angibt, ob der Browser die zugehörige Anfrage am Leben hält, wenn die Seite, die sie initiiert hat, entladen wird, bevor die Anfrage abgeschlossen ist. Request.methodSchreibgeschützt-
Enthält die Methode der Anforderung (
GET,POST, etc.) Request.modeSchreibgeschützt-
Enthält den Modus der Anforderung (z.B.
cors,no-cors,same-origin,navigate.) Request.redirectSchreibgeschützt-
Enthält den Modus, wie Weiterleitungen behandelt werden. Es kann
follow,error, odermanualsein. Request.referrerSchreibgeschützt-
Enthält den Referrer der Anforderung (z.B.
client). Request.referrerPolicySchreibgeschützt-
Enthält die Referrer-Richtlinie der Anforderung (z.B.
no-referrer). Request.signalSchreibgeschützt-
Gibt das mit der Anforderung verbundene
AbortSignalzurück. Request.targetAddressSpaceSchreibgeschützt-
Gibt den Zieladressraum der Anforderung zurück, der angibt, ob es sich um eine Loopback-, lokale oder öffentliche Anfrage handelt.
Request.urlSchreibgeschützt-
Enthält die URL der Anforderung.
Instanz-Methoden
Request.arrayBuffer()-
Gibt ein Versprechen zurück, das mit einer
ArrayBuffer-Darstellung des Anforderungskörpers aufgelöst wird. Request.blob()-
Gibt ein Versprechen zurück, das mit einer
Blob-Darstellung des Anforderungskörpers aufgelöst wird. Request.bytes()-
Gibt ein Versprechen zurück, das mit einer
Uint8Array-Darstellung des Anforderungskörpers aufgelöst wird. Request.clone()-
Erstellt eine Kopie des aktuellen
Request-Objekts. Request.formData()-
Gibt ein Versprechen zurück, das mit einer
FormData-Darstellung des Anforderungskörpers aufgelöst wird. Request.json()-
Gibt ein Versprechen zurück, das mit dem Ergebnis des Parsens des Anforderungskörpers als
JSONaufgelöst wird. Request.text()-
Gibt ein Versprechen zurück, das mit einer Textdarstellung des Anforderungskörpers aufgelöst wird.
Hinweis: Die Funktionen für den Anforderungskörper können nur einmal ausgeführt werden; nachfolgende Aufrufe werden mit TypeError abgelehnt, der zeigt, dass der Körperstream bereits verwendet wurde.
Beispiele
Im folgenden Ausschnitt erstellen wir eine neue Anfrage mit dem Request()-Konstruktor (für eine Bilddatei im gleichen Verzeichnis wie das Skript) und geben dann einige Eigenschaftswerte der Anfrage zurück:
const request = new Request("https://www.mozilla.org/favicon.ico");
const url = request.url;
const method = request.method;
const credentials = request.credentials;
Sie könnten diese Anfrage dann abrufen, indem Sie das Request-Objekt als Parameter in einen fetch()-Aufruf übergeben, zum Beispiel:
fetch(request)
.then((response) => response.blob())
.then((blob) => {
image.src = URL.createObjectURL(blob);
});
Im folgenden Ausschnitt erstellen wir eine neue Anfrage mit dem Request()-Konstruktor mit einigen Anfangsdaten und Körperinhalt für eine API-Anfrage, die eine Nutzlast im Körper benötigt:
const request = new Request("https://example.com", {
method: "POST",
body: '{"foo": "bar"}',
});
const url = request.url;
const method = request.method;
const credentials = request.credentials;
const bodyUsed = request.bodyUsed;
Hinweis:
Der Körper kann nur ein Blob, ein ArrayBuffer, ein TypedArray, ein DataView, ein FormData, ein URLSearchParams, ein ReadableStream oder ein String-Objekt sowie ein einfacher String-Literal sein, sodass Sie zum Hinzufügen eines JSON-Objekts zur Nutzlast dieses Objekt als String darstellen müssen.
Sie könnten diese API-Anfrage dann abrufen, indem Sie das Request-Objekt als Parameter in einen fetch()-Aufruf übergeben und die Antwort erhalten:
fetch(request)
.then((response) => {
if (response.status !== 200) {
throw new Error("Something went wrong on API server!");
}
return response.json();
})
.then((response) => {
console.debug(response);
// …
})
.catch((error) => {
console.error(error);
});
Spezifikationen
| Spezifikation |
|---|
| Fetch> # request-class> |