Esta traducción está incompleta. Por favor, ayuda a traducir este artículo del inglés.

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

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

Constructor

Request.Request()
Crea un nuevo objeto Request.

Propiedades

Request.method Read only
Contiene el metodo de solicitud (GET, POST, etc.)
Request.url Read only
Contiene la URL de la solicitud.
Request.headers Read only
Contiene el objeto asociado de la solicitud Headers
Request.context Read only  
Contiene el contexto de la solicitud (p.ej., audio, image, iframe, etc.)
Request.referrer Read only
Contiene la referencia de la soliditud (p.ej., client).
Request.referrerPolicy Read only
Contiene la política de referencia de la solicitud (p.ej., no-referrer).
Request.mode Read only
Contiene el modo de la solicitud. (p.ej., cors, no-cors, same-origin, navigate.)
Request.credentials Read only
Contiene las credenciales de la solicitud (p.ej., omit, same-origin).
Request.redirect Read only
Contiene el modo de cómo son manipuladas las redirecciones. Puede ser follow, error, o manual.
Request.integrity Read only
Contiene el valor del subrecurso de integridad (subresource integrity) de la solicitud (p.ej., sha256-BpfBw7ivV8q2jLiT13fxDYAe2tJllusRSZ273h2nFSE=).
Request.cache 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 Read only
Un simple getter usado para exponer un contenido del cuerpo ReadableStream
Body.bodyUsed Read only
Almacena un Boolean que declara si ya se ha usado el cuerpo en una respuesta.

Métodos

Request.clone()
Crea una copia del objeto actual Request.

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

Body.arrayBuffer()
Devuelve una promesa que se resuelve con una representación ArrayBuffer del cuerpo de la solicitud.
Body.blob()
Devuelve una promesa que se resuelve con una representación Blob del cuerpo de la solicitud.
Body.formData()
Devuelve una promesa que se resuelve con una representación FormData del cuerpo de la solicitud.
Body.json()
Devuelve una promesa que se resuelve con una representación JSON del cuerpo de la solicitud.
Body.text()
Devuelve una promesa que se resuelve con una representación USVString (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(), 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, FormData, URLSearchParams, USVString o tipo 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 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);
  });

Especificaciones

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

Compatibilidad de navegadores

Update compatibility data on GitHub
DesktopMobile
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome para AndroidFirefox para AndroidOpera para AndroidSafari en iOSSamsung Internet
Request
Experimental
Chrome Soporte completo 42
Soporte completo 42
Soporte completo 41
Deshabilitado
Deshabilitado From version 41: this feature is behind the Experimental Web Platform Features preference. To change preferences in Chrome, visit chrome://flags.
Edge Soporte completo SiFirefox Soporte completo 39
Soporte completo 39
Soporte completo 34
Deshabilitado
Deshabilitado From version 34: this feature is behind the dom.fetch.enabled preference. To change preferences in Firefox, visit about:config.
IE Sin soporte NoOpera Soporte completo 28Safari Soporte completo 10.1WebView Android Soporte completo 42Chrome Android Soporte completo 42
Soporte completo 42
Soporte completo 41
Deshabilitado
Deshabilitado From version 41: this feature is behind the Experimental Web Platform Features preference. To change preferences in Chrome, visit chrome://flags.
Firefox Android Soporte completo SiOpera Android Soporte completo 28Safari iOS Soporte completo 10.1Samsung Internet Android Soporte completo 4.0
Request() constructor
Experimental
Chrome Soporte completo 41
Notas
Soporte completo 41
Notas
Notas From Chrome 47, default values for the init argument's properties changed. mode defaults to same-origin (from no-cors). credentials defaults to include (from same-origin). redirect defaults to follow (from manual).
Edge Soporte completo 15Firefox Soporte completo 39
Soporte completo 39
Soporte completo 34
Deshabilitado
Deshabilitado From version 34: this feature is behind the dom.fetch.enabled preference. To change preferences in Firefox, visit about:config.
IE Sin soporte NoOpera Soporte completo 29
Soporte completo 29
Soporte completo 28
Deshabilitado
Deshabilitado From version 28: this feature is behind the Experimental Web Platform Features preference.
Safari Soporte completo 10.1WebView Android Soporte completo 42
Notas
Soporte completo 42
Notas
Notas From WebView 47, default values for the init argument's properties changed. mode defaults to same-origin (from no-cors). credentials defaults to include (from same-origin). redirect defaults to follow (from manual).
Chrome Android Soporte completo 41
Notas
Soporte completo 41
Notas
Notas From Chrome 47, default values for the init argument's properties changed. mode defaults to same-origin (from no-cors). credentials defaults to include (from same-origin). redirect defaults to follow (from manual).
Firefox Android Soporte completo SiOpera Android Soporte completo 29
Soporte completo 29
Soporte completo 28
Deshabilitado
Deshabilitado From version 28: this feature is behind the Experimental Web Platform Features preference.
Safari iOS Soporte completo 10.3Samsung Internet Android Soporte completo 4.0
Soporte completo 4.0
Soporte completo 5.0
Notas
Notas Some default values for the init parameter changed in Samsung Internet 5.0. See the Properties section for details.
cache
Experimental
Chrome Soporte completo 64Edge Soporte completo 14Firefox Soporte completo 48IE Sin soporte NoOpera Soporte completo 51Safari Soporte completo 11WebView Android Soporte completo 64Chrome Android Soporte completo 64Firefox Android Sin soporte NoOpera Android Soporte completo 47Safari iOS Sin soporte NoSamsung Internet Android Sin soporte No
clone
Experimental
Chrome Soporte completo 42
Soporte completo 42
Soporte completo 41
Deshabilitado
Deshabilitado From version 41: this feature is behind the Experimental Web Platform Features preference. To change preferences in Chrome, visit chrome://flags.
Edge Soporte completo 14Firefox Soporte completo 39
Soporte completo 39
Soporte completo 34
Deshabilitado
Deshabilitado From version 34: this feature is behind the dom.fetch.enabled preference. To change preferences in Firefox, visit about:config.
IE Sin soporte NoOpera Soporte completo 29
Soporte completo 29
Soporte completo 28
Deshabilitado
Deshabilitado From version 28: this feature is behind the Experimental Web Platform Features preference.
Safari Sin soporte NoWebView Android Sin soporte NoChrome Android Sin soporte NoFirefox Android Sin soporte NoOpera Android Soporte completo 29
Soporte completo 29
Soporte completo 28
Deshabilitado
Deshabilitado From version 28: this feature is behind the Experimental Web Platform Features preference.
Safari iOS Sin soporte NoSamsung Internet Android Sin soporte No
context
ExperimentalDeprecadoNo estándar
Chrome Sin soporte 42 — 46Edge ? Firefox Sin soporte 39 — 42
Notas
Sin soporte 39 — 42
Notas
Notas see bug 1188062 for more information.
IE Sin soporte NoOpera Sin soporte 28 — 29Safari Sin soporte NoWebView Android Sin soporte 42 — 46Chrome Android Sin soporte 42 — 46Firefox Android Sin soporte NoOpera Android Sin soporte NoSafari iOS Sin soporte NoSamsung Internet Android Soporte completo 4.0
credentials
Experimental
Chrome Soporte completo 42
Soporte completo 42
Soporte completo 41
Deshabilitado
Deshabilitado From version 41: this feature is behind the Experimental Web Platform Features preference. To change preferences in Chrome, visit chrome://flags.
Edge Soporte completo 14Firefox Soporte completo 39
Soporte completo 39
Soporte completo 34
Deshabilitado
Deshabilitado From version 34: this feature is behind the dom.fetch.enabled preference. To change preferences in Firefox, visit about:config.
IE Sin soporte NoOpera Soporte completo 29
Soporte completo 29
Soporte completo 28
Deshabilitado
Deshabilitado From version 28: this feature is behind the Experimental Web Platform Features preference.
Safari Sin soporte NoWebView Android Soporte completo 42Chrome Android Soporte completo 42Firefox Android Sin soporte NoOpera Android Soporte completo 29
Soporte completo 29
Soporte completo 28
Deshabilitado
Deshabilitado From version 28: this feature is behind the Experimental Web Platform Features preference.
Safari iOS Sin soporte NoSamsung Internet Android Soporte completo 4.0
destination
Experimental
Chrome Soporte completo 65Edge Soporte completo 14Firefox Soporte completo 61IE Sin soporte NoOpera Soporte completo 52Safari Soporte completo 10.1WebView Android Soporte completo 65Chrome Android Soporte completo 65Firefox Android Soporte completo 61Opera Android Soporte completo 47Safari iOS Soporte completo 10.1Samsung Internet Android Soporte completo Si
headers
Experimental
Chrome Soporte completo 42
Soporte completo 42
Soporte completo 41
Deshabilitado
Deshabilitado From version 41: this feature is behind the Experimental Web Platform Features preference. To change preferences in Chrome, visit chrome://flags.
Edge Soporte completo 14Firefox Soporte completo 39
Soporte completo 39
Soporte completo 34
Deshabilitado
Deshabilitado From version 34: this feature is behind the dom.fetch.enabled preference. To change preferences in Firefox, visit about:config.
IE Sin soporte NoOpera Soporte completo 29
Soporte completo 29
Soporte completo 28
Deshabilitado
Deshabilitado From version 28: this feature is behind the Experimental Web Platform Features preference.
Safari Sin soporte NoWebView Android Sin soporte NoChrome Android Sin soporte 42 — 46Firefox Android Sin soporte NoOpera Android Soporte completo 29
Soporte completo 29
Soporte completo 28
Deshabilitado
Deshabilitado From version 28: this feature is behind the Experimental Web Platform Features preference.
Safari iOS Sin soporte NoSamsung Internet Android Soporte completo 4.0
integrity
Experimental
Chrome Soporte completo 46Edge Soporte completo 14Firefox Soporte completo SiIE Sin soporte NoOpera Soporte completo SiSafari Sin soporte NoWebView Android Sin soporte NoChrome Android Soporte completo 46Firefox Android Sin soporte NoOpera Android Soporte completo SiSafari iOS Sin soporte NoSamsung Internet Android Soporte completo 5.0
keepalive
Experimental
Chrome Soporte completo 66Edge Soporte completo 15Firefox ? IE Sin soporte NoOpera Soporte completo 43Safari Sin soporte NoWebView Android Soporte completo 66Chrome Android Soporte completo 66Firefox Android ? Opera Android Soporte completo 43Safari iOS Sin soporte NoSamsung Internet Android Sin soporte No
method
Experimental
Chrome Soporte completo 42
Soporte completo 42
Soporte completo 41
Deshabilitado
Deshabilitado From version 41: this feature is behind the Experimental Web Platform Features preference. To change preferences in Chrome, visit chrome://flags.
Edge Soporte completo 14Firefox Soporte completo 39
Soporte completo 39
Soporte completo 34
Deshabilitado
Deshabilitado From version 34: this feature is behind the dom.fetch.enabled preference. To change preferences in Firefox, visit about:config.
IE Sin soporte NoOpera Soporte completo 29
Soporte completo 29
Soporte completo 28
Deshabilitado
Deshabilitado From version 28: this feature is behind the Experimental Web Platform Features preference.
Safari Sin soporte NoWebView Android Sin soporte NoChrome Android Sin soporte 42 — 46Firefox Android Sin soporte NoOpera Android Soporte completo 29
Soporte completo 29
Soporte completo 28
Deshabilitado
Deshabilitado From version 28: this feature is behind the Experimental Web Platform Features preference.
Safari iOS Sin soporte NoSamsung Internet Android Soporte completo 4.0
mode
Experimental
Chrome Soporte completo 42Edge Soporte completo 14Firefox Soporte completo 39IE Sin soporte NoOpera Soporte completo 29Safari Sin soporte NoWebView Android Soporte completo 49Chrome Android Soporte completo 49Firefox Android Sin soporte NoOpera Android Sin soporte NoSafari iOS Sin soporte NoSamsung Internet Android Soporte completo 5.0
redirect
Experimental
Chrome Soporte completo 46Edge Soporte completo 14Firefox Soporte completo SiIE Sin soporte NoOpera Soporte completo SiSafari Sin soporte NoWebView Android Sin soporte NoChrome Android Soporte completo 46Firefox Android Soporte completo SiOpera Android Soporte completo SiSafari iOS Sin soporte NoSamsung Internet Android Soporte completo 5.0
referrer
Experimental
Chrome Soporte completo 42
Soporte completo 42
Soporte completo 41
Deshabilitado
Deshabilitado From version 41: this feature is behind the Experimental Web Platform Features preference. To change preferences in Chrome, visit chrome://flags.
Edge Soporte completo 14Firefox Soporte completo 47IE Sin soporte NoOpera Soporte completo 29
Soporte completo 29
Soporte completo 28
Deshabilitado
Deshabilitado From version 28: this feature is behind the Experimental Web Platform Features preference.
Safari Sin soporte NoWebView Android Sin soporte NoChrome Android Sin soporte NoFirefox Android Sin soporte NoOpera Android Soporte completo 29
Soporte completo 29
Soporte completo 28
Deshabilitado
Deshabilitado From version 28: this feature is behind the Experimental Web Platform Features preference.
Safari iOS Sin soporte NoSamsung Internet Android Sin soporte No
referrerPolicyChrome Soporte completo 52Edge Soporte completo 14Firefox Soporte completo 52IE Sin soporte NoOpera Soporte completo 39Safari Soporte completo 11.1WebView Android Soporte completo 52Chrome Android Soporte completo 52Firefox Android Soporte completo 52Opera Android Soporte completo 41Safari iOS Sin soporte NoSamsung Internet Android Soporte completo 7.2
signalChrome Soporte completo 66Edge Soporte completo 16Firefox Soporte completo SiIE Sin soporte NoOpera Soporte completo SiSafari ? WebView Android Soporte completo 66Chrome Android Soporte completo 66Firefox Android Soporte completo SiOpera Android Soporte completo SiSafari iOS ? Samsung Internet Android Soporte completo Si
url
Experimental
Chrome Soporte completo 42
Notas
Soporte completo 42
Notas
Notas Fragment support added in Chrome 59.
Edge Soporte completo 14Firefox Soporte completo 39
Soporte completo 39
Soporte completo 34
Deshabilitado
Deshabilitado From version 34: this feature is behind the dom.fetch.enabled preference. To change preferences in Firefox, visit about:config.
IE Sin soporte NoOpera Soporte completo 29
Notas
Soporte completo 29
Notas
Notas Fragment support added in Opera 46.
Safari Soporte completo 10.1WebView Android Soporte completo 42
Notas
Soporte completo 42
Notas
Notas Fragment support added in Chrome 59.
Chrome Android Soporte completo 42
Notas
Soporte completo 42
Notas
Notas Fragment support added in Chrome 59.
Firefox Android Sin soporte NoOpera Android Soporte completo 29
Notas
Soporte completo 29
Notas
Notas Fragment support added in Opera 46.
Safari iOS Soporte completo 10.3Samsung Internet Android Soporte completo 4.0

Leyenda

Soporte completo  
Soporte completo
Sin soporte  
Sin soporte
Compatibilidad desconocida  
Compatibilidad desconocida
Experimental. Esperar que el comportamiento cambie en el futuro.
Experimental. Esperar que el comportamiento cambie en el futuro.
No estandar . Esperar poco soporte entre navegadores.
No estandar . Esperar poco soporte entre navegadores.
Deprecado. No debe ser usado en nuevos sitios web.
Deprecado. No debe ser usado en nuevos sitios web.
Ver notas de implementación.
Ver notas de implementación.
El usuario debe de habilitar explícitamente esta característica.
El usuario debe de habilitar explícitamente esta característica.

Ver también

Etiquetas y colaboradores del documento

Colaboradores en esta página: DiegoFT, mdnwebdocs-bot, fscholz
Última actualización por: DiegoFT,