--- title: Request slug: Web/API/Request tags: - API - Experimental - Fetch - Fetch API - Interface - NeedsTranslation - Reference - TopicStub - request translation_of: Web/API/Request ---
La interfaz Request
de la API Fetch representa una solicitud de respuesta.
Puedes crear un nuevo objeto Request
usando el constructor {{domxref("Request.Request()")}}, pero es preferible encontrar un objeto Request
que sea devuelto como el resultado de otra operacion API, como un operador de servicio {{domxref("FetchEvent.request")}}.
Request
.GET
, POST
, etc.)audio
, image
, iframe
, etc.)client
).no-referrer
).cors
, no-cors
, same-origin
, navigate
.)omit
, same-origin
).follow
, error
, o manual
.sha256-BpfBw7ivV8q2jLiT13fxDYAe2tJllusRSZ273h2nFSE=
).default
, reload
, no-cache
).Request
implementa {{domxref("Body")}}, por lo que también tiene las siguientes propiedades disponibles:
Request
.Request
implementa {{domxref("Body")}}, por lo que también tiene los siguientes métodos disponibles:
Nota: Las funciones {{domxref("Body")}} solo pueden ser ejecutadas una vez; Las siguientes llamadas se resolverán con strings/ArrayBuffers vacíos.
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 {{domxref("GlobalFetch.fetch()")}}, 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 {{domxref("Blob")}}, {{domxref("BufferSource")}}, {{domxref("FormData")}}, {{domxref("URLSearchParams")}}, {{domxref("USVString")}} o tipo {{domxref("ReadableStream")}}, 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 {{domxref("GlobalFetch.fetch()")}}, 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); });
Especificación | Estado | Comentario |
---|---|---|
{{SpecName('Fetch','#request-class','Request')}} | {{Spec2('Fetch')}} | Definición inicial |
{{Compat("api.Request")}}