--- title: Response slug: Web/API/Response tags: - API - Experimental - Fetch - Interface - Referencia - Respuesta translation_of: Web/API/Response ---
{{APIRef("Fetch API")}}

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

Tú puedes crear un nuevo objeto Response usando el  constructor{{domxref("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 {{domxref("Fetchevent.respondWith")}}, o un simple {{domxref("GlobalFetch.fetch()")}}.

Constructor

{{domxref("Response.Response","Response()")}}
Crea un nuevo objeto Response.

Propiedades

{{domxref("Response.headers")}} {{readonlyinline}}
Contiene el objeto {{domxref("Headers")}} asociado con la respuesta.
{{domxref("Response.ok")}} {{readonlyinline}}
Contiene un estado indicando si la respuesta fue exitosa (estado en el rango  200-299) o no.
{{domxref("Response.redirected")}} {{ReadOnlyInline}}
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.
{{domxref("Response.status")}} {{readonlyinline}}
Contiene el código de estado de la respuesta (e.g., 200 si fue exitosa).
{{domxref("Response.statusText")}} {{readonlyinline}}
Contiene el mensaje de estado correspondiente al código de estado (e.g., OK para el Código 200).
{{domxref("Response.type")}} {{readonlyinline}}
Contiene el tipo de respuesta (e.g., basic, cors).
{{domxref("Response.url")}} {{readonlyinline}}
Contiene la URL de respuesta.
{{domxref("Response.useFinalURL")}}
Contiene un valor booleano indicando si ésta es la URL final de respuesta.

Response implementa {{domxref("Body")}}, de modo que además contiene las propiedades que se detallan a continuación:

{{domxref("Body.body")}} {{readonlyInline}}
Un simple método get que expone un {{domxref("ReadableStream")}} de los contenidos del body.
{{domxref("Body.bodyUsed")}} {{readonlyInline}}
Almacena un {{domxref("Boolean")}}  en el cuál declara si el body ya fue enviado como respuesta anteriormente.

Methods

{{domxref("Response.clone()")}}
Clona un Objeto Respuesta.
{{domxref("Response.error()")}}
Devuelve un nuevo objeto Respuesta asociado a un error de red.
{{domxref("Response.redirect()")}}
Crea una nueva respuesta con un URL distinto.
Response iimplementa {{domxref("Body")}}, de modo que además contiene los métodos que se detallan a continuación:
{{domxref("Body.arrayBuffer()")}}
Toma un flujo {{domxref("Response")}} y lo lee hasta completarlo. Devuelve una promesa que resuelve con un {{domxref("ArrayBuffer")}}.
{{domxref("Body.blob()")}}
Toma un flujo {{domxref("Response")}} y lo lee hasta completarlo. Devuelve una promesa que resuelve con un {{domxref("Blob")}}.
{{domxref("Body.formData()")}}
Toma un flujo {{domxref("Response")}} y lo lee hasta completarlo. Devuelve una promesa que resuelve con un objeto {{domxref("FormData")}}.
{{domxref("Body.json()")}}
Recibe un flujo {{domxref("Response")}} y lo lee hasta completarlo. Devuelve una promesa que resuelve como {{jsxref("JSON")}} el texto del Body enviado.
{{domxref("Body.text()")}}
Recibe un flujo {{domxref("Response")}} y lo lee hasta completarlo. Devuelve una promesa que resuelve con un {{domxref("USVString")}} (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 {{htmlelement("img")}} . La llamda a fetch() call devuelve una promesa, la cual resuelve a un objetoResponse asociado a la operación fetch.

Observa como ya que lo que estamos solicitando es una imagen, necesitamos ejecutar {{domxref("Body.blob")}} ({{domxref("Response")}} implements body) para darle a la respuesta su tipo MIME correcto.

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 {{domxref("Response.Response()")}} para crear tus objetos Response personalizados:

var myResponse = new Response();

Especificaciones

Specification Status Comment
{{SpecName('Fetch','#response-class','Response')}} {{Spec2('Fetch')}} Definición inicial

Compatibilidad entre navegadores

{{Compat("api.Response")}}

Ver también