Response: Statische Methode json()
Baseline
Weitgehend verfügbar
Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit September 2023 browserübergreifend verfügbar.
Hinweis: Diese Funktion ist in Web Workers verfügbar.
Die statische Methode json() der Schnittstelle Response gibt eine Response zurück, deren Body die bereitgestellten JSON-Daten enthält und deren Content-Type-Header auf application/json gesetzt ist.
Auch der Status, der Statustext und zusätzliche Header der Antwort können festgelegt werden.
Die Methode erleichtert das Erstellen von Response-Objekten zur Rückgabe JSON-kodierter Daten.
Service Worker fangen beispielsweise Fetch-Anfragen eines Browsers ab und können json() verwenden, um aus zwischengespeicherten JSON-Daten eine Response zu erstellen, die an den Hauptthread zurückgegeben wird.
Die Methode json() kann auch in serverseitigem Code verwendet werden, um JSON-Daten für Single-Page-Anwendungen und andere Anwendungen zurückzugeben, die eine JSON-Antwort erwarten.
Syntax
Response.json(data)
Response.json(data, options)
Parameter
data-
Die JSON-Daten, die als Body der Antwort verwendet werden.
optionsOptional-
Ein Optionsobjekt mit Einstellungen für die Antwort, einschließlich Statuscode, Statustext und Headern. Es entspricht dem Optionsparameter des Konstruktors
Response().status-
Der Statuscode der Antwort, beispielsweise
200. statusText-
Der zum Statuscode gehörende Statustext. Bei einem Status von
200könnte diesOKsein. headers-
Zusätzliche Header für die Antwort, angegeben als
Headers-Objekt oder als Objektliteral mitString-Schlüssel-Wert-Paaren (siehe HTTP-Header als Referenz).
Rückgabewert
Ein Response-Objekt.
Ausnahmen
TypeError-
Wird ausgelöst, wenn
datanicht in einen JSON-String umgewandelt werden kann. Dies kann beispielsweise passieren, wenn die Daten ein JavaScript-Objekt mit einer Methode oder einem zirkulären Verweis sind oder wenn das übergebene Objektundefinedist.
Beispiele
>Antwort mit JSON-Daten
Dieses interaktive Beispiel zeigt, wie Sie ein JSON-Antwortobjekt erstellen. Das neu erstellte Objekt wird zur Überprüfung protokolliert (der dafür zuständige Code ist ausgeblendet, da er hier nicht relevant ist).
Der folgende Code erstellt ein Response-Objekt mit dem JSON-Body { my: "data" } und einem auf application/json gesetzten Header.
const jsonResponse = Response.json({ my: "data" });
logResponse(jsonResponse);
Das Objekt hat die folgenden Eigenschaften.
Beachten Sie, dass Body und Header wie erwartet gesetzt sind und der Standardstatus 200 ist.
Antwort mit JSON-Daten und Optionen
Dieses Beispiel zeigt, wie Sie ein JSON-Antwortobjekt mit den Optionen status und statusText erstellen.
Der folgende Code erstellt ein Response-Objekt mit dem JSON-Body { some: "data", more: "information" } und einem auf application/json gesetzten Header.
Außerdem setzt er den Status auf 307 und den zugehörigen Statustext („Temporary Redirect“).
const jsonResponse = Response.json(
{ some: "data", more: "information" },
{ status: 307, statusText: "Temporary Redirect" },
);
logResponse(jsonResponse);
Das Objekt hat die folgenden Eigenschaften, die wie erwartet gesetzt sind.
Beachten Sie, dass die Eigenschaft ok der Antwort auf false gesetzt ist, da der Statuswert nicht im Bereich von 200 bis 299 liegt.
Spezifikationen
| Spezifikation |
|---|
| Fetch> # ref-for-dom-response-json①> |