Response

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2017.

L'interface Response de l'API de fetch représente la réponse d'une requête initialisée.

Vous pouvez créer un nouvel objet Response en utilisant le constructeur Response.Response() (en-US). Cependant, vous rencontrerez plus fréquemment l'objet Response comme étant le résultat d'une opération de l'API, par exemple, un service worker Fetchevent.respondWith (en-US), ou un simple GlobalFetch.fetch().

Constructeur

Response() (en-US)

Crée un nouvel objet Response.

Propriétés

Response.headers (en-US) Lecture seule

Contient les objets Headers associés à la réponse.

Response.ok Lecture seule

Contient un booléen statuant s'il s'agit d'une réponse indiquant un succès (statut HTTP entre 200 et 299) ou non.

Response.redirected (en-US) Lecture seule

Indique si oui ou non la réponse est le résultat d'une (ou plusieurs) redirection(s), c'est-à-dire que sa liste d'URLs a plus d'une entrée.

Response.status (en-US) Lecture seule

Contient le status code de la réponse (par exemple 200 en cas de réussite).

Response.statusText (en-US) Lecture seule

Contient le message du statut correspondant au status code (à savoir : OK pour le code 200 par exemple).

Response.type (en-US) Lecture seule

Contient le type de la réponse (par exemple, basic, cors).

Response.url (en-US) Lecture seule

Contient l'URL de la réponse.

Response.useFinalURL

Contient un booléen statuant s'il s'agit de l'URL finale de la réponse.

Par ailleurs, Response implémente également une propriété Body, voici les propriétés qui lui sont propres :

Body.body (en-US) Lecture seule

Un simple getter utilisé afin d'exposer un ReadableStream (en-US) permettant de lire le contenu du body.

Body.bodyUsed (en-US) Lecture seule

Stocke un Boolean (en-US) qui indique si le body a déjà été utilisé dans la réponse ou non.

Méthodes

Response.clone() (en-US)

Crée un clone de l'objet Response.

Response.error() (en-US)

Retourne un nouvel objet Response associé à une erreur réseau.

Response.redirect() (en-US)

Crée une nouvelle réponse avec une URL différente permettant de rediriger l'utilisateur.

Response implémente Body, voici les différentes méthodes qui sont disponibles:

Body.arrayBuffer() (en-US)

Prend le stream de la Response et le lit jusqu'à la fin. Renvoie une promise qui retourne un ArrayBuffer lorsqu'elle est résolue.

Body.blob() (en-US)

Prend le stream de la Response et le lit jusqu'à la fin. Renvoie une promise qui retourne un Blob lorsqu'elle est résolue.

Body.formData() (en-US)

Prend le stream de la Response et le lit jusqu'à la fin. Renvoie une promise qui retourne un FormData lorsqu'elle est résolue.

Body.json() (en-US)

Prend le stream de la Response et le lit jusqu'à la fin. Renvoie une promise qui retourne le résultat du parsing du body text, comme JSON ,lorsqu'elle est résolue.

Body.text() (en-US)

Prend le stream de la Response et le lit jusqu'à la fin. Renvoie une promise qui est résolue avec un USVString (text).

Exemples

Dans notre exemple basique d'utilisation de fetch() (voir l'exemple en direct), nous utilisons un simple appel fetch() pour récupérer une image et l'afficher dans un élément <img>. L'appel fetch() retourne une promesse qui est résolue avec un objet Response associé à l'opération de récupération de la ressource.

Vous remarquerez que puisque nous récupérons une image, nous avons besoin d'utiliser Response.blob (en-US) pour attribuer le bon type MIME à la réponse.

js
var myImage = document.querySelector(".my-image");
fetch("flowers.jpg")
  .then(function (response) {
    return response.blob();
  })
  .then(function (blob) {
    var objectURL = URL.createObjectURL(blob);
    myImage.src = objectURL;
  });

Vous pouvez également utiliser le constructeur Response.Response() (en-US) pour créer votre propre objet Response:

js
var myResponse = new Response();

Spécifications

Specification
Fetch Standard
# response-class

Compatibilité des navigateurs

BCD tables only load in the browser

Voir aussi