Antwort Abrufen – Umfang, Global
Die Antwort Abrufen Die API bietet Methoden zum Erstellen eines neuen Antwortobjekts und zur Verarbeitung des von einem erstellten Antworttexts Anforderung Abrufen API-Methode.
- Abrufen – Abrufen (Zeichenfolgenressource, Objektoptionen): Startet den Prozess des Abrufs einer Ressource aus dem Netzwerk.
- Header Abrufen – Umfang, Global: Anforderungs- und Antwortheader abrufen und ändern.
- Anforderung Abrufen – Umfang, Global: Erstellen Sie ein neues Anforderungsobjekt.
- Rufen Sie „RequestInit“ ab – Umfang, Global: Legen Sie Optionen zum Konfigurieren einer Abrufanforderung fest.
- Antwort Abrufen – Umfang, Global: Erstellen Sie ein neues Antwortobjekt.
Zur Unterstützung von Abrufaktionen die Systemeigenschaft Glide.Hosts.Zulässigkeitsliste , Ermöglicht Steuerungen darüber, auf welche Hosts eine Abrufmethode zugreifen kann. Gilt für HTTP-APIs wie RestMessageV2 Und die oben genannten. Weitere Informationen zu finden Glide.Hosts.Zulässigkeitsliste , Siehe Available system properties.
Antworteigenschaften
Die Antwort Die API stellt Eigenschaften bereit, die Details zur HTTP-Antwort zurückgeben. Mit diesen Eigenschaften können Sie auf Metadaten zugreifen (z. B. Status , Header , Typ ) Und der Antworttext ( Textkörper ) Zur weiteren Verarbeitung. Sie ermöglichen die Überprüfung des Erfolgs einer Anforderung ( ok ) Und Analyse der zurückgegebenen Daten in verschiedenen Formaten (z. B. JSON oder Text). Diese Eigenschaften sind wichtig für die Validierung und Verarbeitung von Serverantworten in clientseitigen Anwendungen. Weitere ausführliche Erklärungen zu den einzelnen Eigenschaften finden Sie unter https://developer.mozilla.org/en-US/docs/Web/API/Response.
| Eigenschaftsname | Beschreibung | Beispiel |
|---|---|---|
| body | Nur bereit. Enthält einen lesbaren Stream von Byte-Daten im Inhalt des Antworttexts. Gültige Werte: Ein ReadableStream oder null. Datentyp: Zeichenfolge |
|
| Körperverwendet | Nur bereit. Kennzeichnung, die angibt, ob der Text noch gelesen wurde. Akzeptierte Werte:
Datentyp: Boolesch |
|
| headers | Schreibgeschützt. Das Headerobjekt, das der Antwort zugeordnet ist. Datentyp: Header-Objekt |
|
| Okay | Nur bereit. Kennzeichnung, die angibt, ob die Antwort erfolgreich war (Status im Bereich 200–299) oder nicht. Akzeptierte Werte:
Datentyp: Boolesch |
|
| Weitergeleitet | Schreibgeschützt. Kennzeichnung, die angibt, ob die Antwort ein Ergebnis ist, dass die Anforderung umgeleitet wurde. Akzeptierte Werte:
Datentyp: Boolesch |
|
| status | Schreibgeschützt. HTTP-Statuscodes der Antwort. Beispiel: 200 für einen Erfolg. Datentyp: Zahl |
|
| StatusText | Schreibgeschützt. Statusnachricht, die dem HTTP-Statuscode in response.Status entspricht. Dies wäre zum Beispiel OK Für einen Statuscode 200 , Fahren Sie Fort Für 100 , Nicht Gefunden Für 404 .Datentyp: Zeichenfolge |
|
| type | Schreibgeschützt. Typ der Antwort. Akzeptierte Werte:
Datentyp: Zeichenfolge |
|
| URL | Schreibgeschützt. URL der Antwort. Datentyp: Zeichenfolge |
|
Antwort abrufen – Antwort (Objekttext, Objektoptionen)
Erstellt ein neues Antwortobjekt mit Antwort () Konstruktor.
| Name | Typ | Beschreibung |
|---|---|---|
| body | Objekt | Optional. Ein Objekt, das einen Textkörper für die Antwort definiert. Gültige Typen:
Standard: Null |
| Optionen | Objekt | Optional. Ein Optionsobjekt, das alle anwenderdefinierten Einstellungen enthält, die Sie auf die Antwort anwenden möchten, oder ein leeres Objekt (das der Standardwert ist). Die möglichen Optionen lauten:
|
In diesem Beispiel erstellen wir ein neues Antwortobjekt mit dem Konstruktor, übergeben einen neuen Blob als Textkörper und ein init-Objekt mit anwenderdefinierten Status- und statusTextoptionen:
const myBlob = new Blob();
const myOptions = { status: 200, statusText: "Status message!" };
const myResponse = new Response(myBlob, myOptions);
Antwort abrufen – arrayBuffer()
Gibt eine Zusage zurück, die mit einem ArrayBuffer gelöst wird.
Die ArrayBuffer() Die Methode ist nützlich, wenn Sie mit Binärdaten wie Bildern, Audiodateien oder anderen Binärdateien arbeiten, die verarbeitet werden müssen.
| Name | Typ | Beschreibung |
|---|---|---|
| Keine |
| Typ | Beschreibung |
|---|---|
| Objekt | Eine Zusage, die mit gelöst wird ArrayBuffer , Der einen generischen binären Rohdatenpuffer darstellt. |
| Ausnahme | Beschreibung |
|---|---|
| DOMException: Abbruchfehler | Eine Ausnahme, die angibt, dass die Anforderung abgebrochen wurde. |
| TypeError | Wird aus einem der folgenden Gründe ausgelöst:
|
| Bereichsfehler | Beim Erstellen des zugeordneten ist ein Problem aufgetreten ArrayBuffer . Beispiel: Wenn die Datengröße zu groß ist. |
- Abrufen () : Ruft eine Ressource aus der angegebenen URL ab.
- response.ok: Überprüft, ob der Antwortstatus im Bereich 200-299 liegt.
- ArrayBuffer() : Liest den Antworttext und konvertiert ihn in einen ArrayBuffer, der einen generischen binären Rohdatenpuffer mit fester Länge darstellt.
- Uint8Array: Konvertiert den ArrayBuffer in ein Uint8Array, ein typisiertes Array zur einfachen Bearbeitung von Binärdaten.
javascriptCopy code// Simple API to fetch binary data and process it using arrayBuffer()asyncfunctionfetchBinaryData(url) {
try {
// Fetch the resource from the provided URLconst response = awaitfetch(url);
// Check if the response is successfulif (!response.ok) {
thrownewError(`HTTP error! Status: ${response.status}`);
}
// Convert the response body to an ArrayBufferconst arrayBuffer = await response.arrayBuffer();
// Process the ArrayBuffer (e.g., convert it to a typed array)const uint8Array = newUint8Array(arrayBuffer);
// Return the processed datareturn uint8Array;
} catch (error) {
console.error("Error fetching or processing binary data:", error);
throw error;
}
}
// Example usageconst binaryDataUrl = 'https://example.com/path/to/binary/data';
fetchBinaryData(binaryDataUrl)
.then((data) => {
console.log("Binary data as Uint8Array:", data);
// Further processing can be done here, e.g., rendering an image or playing audio
})
.catch((error) => {
console.error("Failed to fetch binary data:", error);
});Antwort abrufen – blob()
Gibt eine Zusage zurück, die mit einem Blob gelöst wird.
| Name | Typ | Beschreibung |
|---|---|---|
| Keine |
| Typ | Beschreibung |
|---|---|
| Objekt | Ein Versprechen, das mit gelöst wird Blob . |
| Ausnahme | Beschreibung |
|---|---|
| DOMException: Abbruchfehler | Eine Ausnahme, die angibt, dass die Anforderung abgebrochen wurde. |
| TypeError | Wird aus einem der folgenden Gründe ausgelöst:
|
- Abrufen (url) : Ruft eine Ressource aus der angegebenen URL ab.
- Antwort.Blob() : Konvertiert den Antworttext in ein Blob-Objekt, das Binärdaten darstellt.
- URL.createObjectURL (Blob) : Generiert eine temporäre URL für den Blob, die im DOM verwendet werden kann (z. B. als Bildquelle).
- Das Bild an das DOM anhängen: Erstellt dynamisch ein Bildelement, legt die Blob-URL als Quelle fest und hängt es an den Dokumenttext an.
async function fetchBlob(url) {
try {
// Fetch the resource from the provided URL
const response = await fetch(url);
// Check if the response is successful
if (!response.ok) {
throw new Error(`HTTP error! Status: ${response.status}`);
}
// Convert the response body to a Blob
const blob = await response.blob();
// Create a URL for the Blob and log it
const blobUrl = URL.createObjectURL(blob);
console.log("Blob URL:", blobUrl);
// For example, you can set it as the source of an image
const img = document.createElement('img');
img.src = blobUrl;
img.alt = "Fetched Blob Image";
document.body.appendChild(img);
} catch (error) {
console.error("Error fetching or processing blob:", error);
}
}
// Example usage with an image URL
const imageUrl = 'https://via.placeholder.com/150';
fetchBlob(imageUrl);
Antwort abrufen – bytes()
Gibt eine Zusage zurück, die mit einem Uint8Array gelöst wird.
| Name | Typ | Beschreibung |
|---|---|---|
| Keine |
| Typ | Beschreibung |
|---|---|
| Objekt | Eine Zusage, die mit einem Uint8Array gelöst wird. |
| Ausnahme | Beschreibung |
|---|---|
| DOMException: Abbruchfehler | Die Anforderung wurde abgebrochen. |
| TypeError | Wird aus einem der folgenden Gründe ausgelöst:
|
| Bereichsfehler | Beim Erstellen des zugeordneten ist ein Problem aufgetreten ArrayBuffer . Beispiel: Wenn die Datengröße zu groß ist. |
Das folgende Beispiel zeigt, wie Sie eine Textdatei abrufen, den Textkörper als Uint8Array zurückgeben und diese dann in eine Zeichenfolge decodieren.
const response = await fetch("https://www.example.com/textfile.txt");
const textFile = await response.bytes();
const string = new TextDecoder().decode(textFile);
console.log(string);
Antwort abrufen – formData()
Gibt eine Zusage zurück, die mit einem FormData-Objekt gelöst wird.
| Name | Typ | Beschreibung |
|---|---|---|
| Keine |
| Typ | Beschreibung |
|---|---|
| Objekt | Ein Versprechen, das mit gelöst wird Formulardaten Objekt. |
| Ausnahme | Beschreibung |
|---|---|
| DOMException: Abbruchfehler | Die Anforderung wurde abgebrochen. |
| TypeError | Wird aus einem der folgenden Gründe ausgelöst:
|
- Anforderungstext: Verwendet
JSON.stringify()Zum Senden der Formulardaten als JSON anstelle von URL-codierten Parametern. - Inhaltstyp: Auf festgelegt
Anwendung/JSONUm das Format des Anforderungstexts anzugeben.
// Example of using Response.formData()
async function fetchFormData(url) {
try {
// Make a POST request to fetch the form data
const response = await fetch(url, {
method: 'POST',
body: JSON.stringify({
name: 'John Doe',
email: 'john.doe@example.com',
}),
headers: {
'Content-Type': 'application/json',
},
});
// Check if the response is successful
if (!response.ok) {
throw new Error(`HTTP error! Status: ${response.status}`);
}
// Parse the response as FormData
const formData = await response.formData();
// Iterate through the FormData entries
for (const [key, value] of formData.entries()) {
console.log(`${key}: ${value}`);
}
} catch (error) {
console.error("Error fetching or processing form data:", error);
}
}
// Example usage
const formEndpoint = 'https://httpbin.org/post'; // Replace with your form endpoint
fetchFormData(formEndpoint);
Ausgabe:
name: John Doe
email: john.doe@example.com
Antwort abrufen – JSON()
Gibt eine Zusage zurück, die das Ergebnis der Analyse des Textkörpers als JSON ergibt.
| Name | Typ | Beschreibung |
|---|---|---|
| Keine |
| Typ | Beschreibung |
|---|---|
| Objekt | Eine Zusage, die in ein JavaScript-Objekt aufgelöst wird. Dieses Objekt kann alles sein, was von JSON dargestellt werden kann, z. B. ein Objekt, ein Array, eine Zeichenfolge, eine Zahl, und so weiter. |
| Ausnahme | Beschreibung |
|---|---|
| DOMException: Abbruchfehler | Die Anforderung wurde abgebrochen. |
| TypeError | Wird aus einem der folgenden Gründe ausgelöst:
|
| SyntaxError | Der Antworttext kann nicht als JSON analysiert werden. |
- Abrufen () Stellt eine GET-Anforderung an die URL.
- Die response.okÜberprüft, ob die Anforderung erfolgreich war (Statuscode 200–299).
- Wenn erfolgreich, Antwort.JSON() Wird aufgerufen, um die JSON-Daten aus der Antwort zu analysieren.
- Die analysierten Daten werden mithilfe von in Systemprotokollen protokolliert Konsole API. Wenn während der Anforderung oder Analyse ein Fehler auftritt, wird er erfasst und protokolliert.
fetch('https://jsonplaceholder.typicode.com/posts/1')
.then(response => {
if (!response.ok) {
throw new Error('Network response was not ok');
}
return response.json();
})
.then(data => console.log(data))
.catch(error => console.error('Fetch error:', error));
Antwort abrufen – Text()
Liest den Antworttext und gibt ihn als einfache Zeichenfolge zurück. Die Antwort wird immer mit UTF-8 decodiert.
Die Text() Die Methode ist nützlich für Antworten, die Textdaten enthalten, z. B. HTML, JSON (wenn Sie sie manuell verarbeiten möchten), XML oder nur-Text-Dateien, die als nur-Zeichenfolgen behandelt werden sollen.
| Name | Typ | Beschreibung |
|---|---|---|
| Keine |
| Typ | Beschreibung |
|---|---|
| Keine | Eine Zusage, die mit einer UTF-8-konformen Zeichenfolge aufgelöst wird. |
| Ausnahme | Beschreibung |
|---|---|
| DOMException: Abbruchfehler | Die Anforderung wurde abgebrochen. |
| TypeError | Wird aus einem der folgenden Gründe ausgelöst:
|
Das folgende Beispiel zeigt, wie eine einfache Methode zu verwenden ist Text() Wenn der Server nur-Text zurückgibt, z. B. Hallo Welt! Dies ist eine Beispielantwort .
const response = awaitfetch('https://example.com/text-endpoint');
const text = await response.text();
console.log(text); // Outputs: Hello, world! This is a sample response.
Ausgabe:
Hello, world! This is a sample response.