Response
========

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 with JavaScript enabled. Enable JavaScript to view data.

Voir aussi
----------

* ServiceWorker API (en-US)
* HTTP access control (CORS)
* HTTP