Response
========

A interface **`Response`** da Fetch API representa a resposta para uma requisição.

Você pode criar um novo objeto `Response` usando o construtor `Response.Response()` (en-US), porém é mais provável você encontrar um objeto Response sendo retornado como o resultado de uma outra operação da API, por exemplo um service worker `Fetchevent.respondWith` (en-US), ou um simples `GlobalFetch.fetch()` (en-US).

Construtor
----------

`Response()` (en-US)

Cria um novo objeto `Response`.

Propriedades
------------

`Response.headers` (en-US) Somente leitura 

Contém o objeto `Headers` (en-US) associado à resposta.

`Response.ok` (en-US) Somente leitura 

Contém um valor booleano indicando se a resposta foi bem sucedida ("status" no intervalo 200-299) ou não.

`Response.redirected` (en-US) Somente leitura 

Indica se a resposta é ou não o resultado de um redirecionamento; isto é, sua lista de URL tem mais de uma entrada.

`Response.status` (en-US) Somente leitura 

Contém o código de "status" da resposta (ex., `200` para um sucesso).

`Response.statusText` (en-US) Somente leitura 

Contém a mensagem de "status" correspondente ao código de "status" (ex., `OK` para `200`).

`Response.type` (en-US) Somente leitura 

Contém o tipo da resposta (ex., `basic`, `cors`).

`Response.url` (en-US) Somente leitura 

Contém a URL de resposta.

`Response.useFinalURL`

Contém um valor boleano indicando se essa é a URL final da resposta.

`Response` implementa `Body`, por isso também tem as seguintes propriedades disponíveis:

`Body.body` (en-US) Somente leitura 

Um simples "getter" para ler do conteúdo do corpo através da interface `ReadableStream` (en-US).

`Body.bodyUsed` (en-US) Somente leitura 

Armazena um `Boolean` (en-US) que indica se o corpo já foi utilizado em uma resposta.

Métodos
-------

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

Cria uma cópia do objeto `Response`.

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

Retorna um novo objeto `Response` associado a um erro de rede.

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

Cria uma nova resposta com uma URL diferente.

`Response` implementa `Body`, por isso também tem as seguintes propriedades disponíveis:

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

Recebe um "stream" `Response` e lê até a conclusão. Retorna uma "promise" que resolve com um `ArrayBuffer`.

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

Recebe um "stream" `Response` e lê até a conclusão. Retorna uma "promise" que resolve com um `Blob`.

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

Recebe um "stream" `Response` e lê até a conclusão. Retorna uma "promise" que resolve com um objeto `FormData`.

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

Recebe um "stream" `Response` e lê até a conclusão. Retorna uma "promise" que resolve com o resultado do parseamento do texto do corpo como `JSON`.

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

Recebe um "stream" `Response` e lê até a conclusão. Retorna uma "promise" que resolve com um `USVString` (en-US) (texto).

Exemplos
--------

Em nosso exemplo básico fetch (executar exemplo live) nós usamos uma simples chamada `fetch()` para pegar uma imagem e exibi-la em uma tag `<img>`. A chamada `fetch()` retorna uma "promise", que resolve com o objeto `Response` associado com o recurso da operação "fetch". Você irá notar que como estamos solicitando uma imagem, nós precisamos executar `Body.blob` (en-US) (`Response` implementa o "body") para dar à resposta seu tipo MIME correto.


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


Você também pode usar o construtor `Response.Response()` (en-US) para criar seu objeto `Response` personalizado:


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

Especificações
--------------

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

Compatibilidade com navegadores
-------------------------------

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

Veja também
-----------

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