Request

La interfaz Request de la API Fetch representa una solicitud de respuesta.

Puedes crear un nuevo objeto Request usando el constructor Request.Request() (en-US), pero es preferible encontrar un objeto Request que sea devuelto como el resultado de otra operacion API, como un operador de servicio FetchEvent.request (en-US).

Constructor

Request.Request() (en-US)
Crea un nuevo objeto Request.

Propiedades

Request.method (en-US) Read only
Contiene el metodo de solicitud (GET, POST, etc.)
Request.url (en-US) Read only
Contiene la URL de la solicitud.
Request.headers Read only
Contiene el objeto asociado de la solicitud Headers (en-US)
Request.context (en-US) Read only  
Contiene el contexto de la solicitud (p.ej., audio, image, iframe, etc.)
Request.referrer (en-US) Read only
Contiene la referencia de la soliditud (p.ej., client).
Request.referrerPolicy (en-US) Read only
Contiene la pol√≠tica de referencia de la solicitud (p.ej., no-referrer).
Request.mode (en-US) Read only
Contiene el modo de la solicitud. (p.ej., cors, no-cors, same-origin, navigate.)
Request.credentials (en-US) Read only
Contiene las credenciales de la solicitud (p.ej., omit, same-origin).
Request.redirect (en-US) Read only
Contiene el modo de c√≥mo son manipuladas las redirecciones. Puede ser follow, error, o manual.
Request.integrity (en-US) Read only
Contiene el valor del subrecurso de integridad (subresource integrity) de la solicitud (p.ej., sha256-BpfBw7ivV8q2jLiT13fxDYAe2tJllusRSZ273h2nFSE=).
Request.cache (en-US) Read only
Contiene el modo de cach√© de la solicitud (p.ej., default, reload, no-cache).

Request implementa Body, por lo que tambi√©n tiene las siguientes propiedades disponibles:

Body.body (en-US) Read only
Un simple getter usado para exponer un contenido del cuerpo ReadableStream (en-US)
Body.bodyUsed (en-US) Read only
Almacena un Boolean (en-US) que declara si ya se ha usado el cuerpo en una respuesta.

Métodos

Request.clone() (en-US)
Crea una copia del objeto actual Request.

Request implementa Body, por lo que también tiene los siguientes métodos disponibles:

Body.arrayBuffer() (en-US)
Devuelve una promesa que se resuelve con una representación ArrayBuffer del cuerpo de la solicitud.
Body.blob() (en-US)
Devuelve una promesa que se resuelve con una representación Blob del cuerpo de la solicitud.
Body.formData() (en-US)
Devuelve una promesa que se resuelve con una representación FormData del cuerpo de la solicitud.
Body.json() (en-US)
Devuelve una promesa que se resuelve con una representación JSON del cuerpo de la solicitud.
Body.text() (en-US)
Devuelve una promesa que se resuelve con una representación USVString (en-US) (text) del cuerpo de la solicitud.

Nota: Las funciones Body solo pueden ser ejecutadas una vez; Las siguientes llamadas se resolverán con strings/ArrayBuffers vacíos.

Ejemplos

En el siguiente fragmento de c√≥digo, creamos una nueva solicitud utilizando el constructor Request() (para un archivo de imagen en el mismo directorio que el script),  luego devolvemos algunos valores de propiedad de la solicitud:

const myRequest = new Request('http://localhost/flowers.jpg');

const myURL = myRequest.url; // http://localhost/flowers.jpg
const myMethod = myRequest.method; // GET
const myCred = myRequest.credentials; // omit

Puede obtener esta solicitud pasando el objeto Request como par√°metro a una llamada GlobalFetch.fetch() (en-US), por ejemplo:

fetch(myRequest)
  .then(response => response.blob())
  .then(blob => {
    myImage.src = URL.createObjectURL(blob);
  });

En el siguiente fragmento de c√≥digo, creamos una nueva solicitud utilizando el constructor Request() con algunos datos iniciales y contenido del cuerpo para una solicitud de API que necesita una carga √ļtil del cuerpo:

const myRequest = new Request('http://localhost/api', {method: 'POST', body: '{"foo":"bar"}'});

const myURL = myRequest.url; // http://localhost/api
const myMethod = myRequest.method; // POST
const myCred = myRequest.credentials; // omit
const bodyUsed = myRequest.bodyUsed; // true

Nota: El tipo de cuerpo solo puede ser Blob, BufferSource (en-US), FormData, URLSearchParams, USVString (en-US) o tipo ReadableStream (en-US), as√≠ que para a√Īadir un objeto JSON a la carga √ļtil, necesitas convertir a string (stringify) dicho objeto.

Puede obtener esta solicitud de API pasando el objeto Request como par√°metro a una llamada GlobalFetch.fetch() (en-US), por ejemplo, y obtener la respuesta:

fetch(myRequest)
  .then(response => {
    if (response.status === 200) {
      return response.json();
    } else {
      throw new Error('Something went wrong on api server!');
    }
  })
  .then(response => {
    console.debug(response);
    // ...
  }).catch(error => {
    console.error(error);
  });

Especificaciones

Especificación Estado Comentario
Fetch
La definición de 'Request' en esta especificación.
Living Standard Definición inicial

Compatibilidad de navegadores

BCD tables only load in the browser

Ver también