Response
========

La interfaz **`Response`** de la Fetch API representa la respuesta a una petición.

Tú puedes crear un nuevo objeto `Response` usando el constructor`Response.Response()`, pero es más probable encontrar un objeto Response siendo devuelto como resultado de la operación de otra API, por ejemplo un service worker `Fetchevent.respondWith` (en-US), o un simple `GlobalFetch.fetch()` (en-US).

Constructor
-----------

`Response()`

Crea un nuevo objeto `Response`.

Propiedades
-----------

`Response.headers` (en-US) Read only 

Contiene el objeto `Headers` (en-US) asociado con la respuesta.

`Response.ok` Read only 

Contiene un estado indicando si la respuesta fue exitosa (estado en el rango 200-299) o no.

`Response.redirected` (en-US) Read only 

Indica si la respuesta es o no el resultado de una redirección; eso es, su lista de URL tiene más de una entrada.

`Response.status` Read only 

Contiene el código de estado de la respuesta (e.g., `200` si fue exitosa).

`Response.statusText` (en-US) Read only 

Contiene el mensaje de estado correspondiente al código de estado (e.g., `OK` para el Código `200`).

`Response.type` (en-US) Read only 

Contiene el tipo de respuesta (e.g., `basic`, `cors`).

`Response.url` (en-US) Read only 

Contiene la URL de respuesta.

`Response.useFinalURL`

Contiene un valor booleano indicando si ésta es la URL final de respuesta.

`Response` implementa `Body`, de modo que además contiene las propiedades que se detallan a continuación:

`Body.body` (en-US) Read only 

Un simple método get que expone un `ReadableStream` (en-US) de los contenidos del body.

`Body.bodyUsed` (en-US) Read only 

Almacena un `Boolean` (en-US) en el cuál declara si el body ya fue enviado como respuesta anteriormente.

Methods
-------

`Response.clone()` (en-US)

Clona un Objeto Respuesta.

`Response.error()` (en-US)

Devuelve un nuevo objeto Respuesta asociado a un error de red.

`Response.redirect()` (en-US)

 Crea una nueva respuesta con un URL distinto.
 `Response` iimplementa `Body`, de modo que además contiene los métodos que se detallan a continuación:



`Body.arrayBuffer()` (en-US)

Toma un flujo `Response` y lo lee hasta completarlo. Devuelve una promesa que resuelve con un `ArrayBuffer`.

`Body.blob()` (en-US)

Toma un flujo `Response` y lo lee hasta completarlo. Devuelve una promesa que resuelve con un `Blob`.

`Body.formData()` (en-US)

Toma un flujo `Response` y lo lee hasta completarlo. Devuelve una promesa que resuelve con un objeto `FormData`.

`Body.json()` (en-US)

Recibe un flujo `Response` y lo lee hasta completarlo. Devuelve una promesa que resuelve como `JSON` el texto del Body enviado.

`Body.text()` (en-US)

Recibe un flujo `Response` y lo lee hasta completarlo. Devuelve una promesa que resuelve con un `USVString` (en-US) (texto).

Examples
--------

En nuestro ejemplo básico de ferch (ejecutar el ejemplo) usamos una llamada `fetch()` para descargar una imagen y mostrarla en una etiqueta `<img>` . La llamda a `fetch()` call devuelve una promesa, la cual resuelve a un objeto `Response` asociado a la operación fetch.

Observa como ya que lo que estamos solicitando es una imagen, necesitamos ejecutar `Body.blob` (en-US) (`Response` implements body) para darle a la respuesta su tipo MIME correcto.


```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;
  });
```


También puedes usar el constructor `Response.Response()` para crear tus objetos `Response` personalizados:


```js
var myResponse = new Response();
```

Especificaciones
----------------

| Specification |
| --- |
| Fetch Standard # response-class |

Compatibilidad con navegadores
------------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Ver también
-----------

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