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


La API Fetch proporciona una interfaz para recuperar recursos (incluyendo recursos remotos a través de redes). Le resultará familiar a cualquiera que haya usado XMLHttpRequest, pero ésta nueva API ofrece un conjunto de características más potente y flexible.

Conceptos y uso

Fetch ofrece una definición genérica de los objetos Request y Response (y otras cosas relacionados con las solicitudes de red). Esto permitirá que sean utilizados donde sea necesario en el futuro, ya sea para los operadores de servicios, API caché y otras cosas similares que manipulan o modifican las solicitudes y respuestas, o cualquier tipo de caso de uso que podría requerir la generación de sus propias respuestas mediante programación.

También proporciona una definición de conceptos relacionados, como CORS y la semántica de encabezado HTTP origen, suplantando sus definiciones separadas en otros lugares.

Para hacer una solicitud y recuperar un recurso, utilice el método GlobalFetch.fetch. Se implementa en múltiples interfaces, específicamente Window y WorkerGlobalScope. Esto hace que esté disponible en casi cualquier contexto donde quiera buscar recursos.

El método fetch() toma un argumento obligatorio, la ruta de acceso al recurso que desea recuperar. Devuelve una Promise que resuelve en Response a esa petición, sea o no correcta. También puede pasar opcionalmente un objeto de opciones init como segundo argumento (ver Request).

Una vez que Response es recuperada, hay varios métodos disponibles para definir cuál es el contenido del cuerpo y como se debe manejar (ver Body).

Puede crear una solicitud y respuesta directamente a con los constructores Request() y Response(), pero no es recomendable hacerlo directamente. En su lugar, es preferible que sean creados como resultado de otras acciones de la API (por ejemplo, FetchEvent.respondWith desde los operadores de servicios).

Nota: Puede encontrar mas información sobre las características de la API Fetch en Usando Fetch, y aprender los conceptos en Fetch: conceptos básicos.

Abortar una petición

Los navegadores han empezado a añadir soporte experimental para las interfaces AbortController y AbortSignal (Conocidas también como La API Abort), las cuales permiten que operaciones como Fetch y XHR puedan ser abortadas si no han terminado todavía. Visita las páginas de las interfaces para más detalles.

Fetch Interfaces o Métodos

GlobalFetch
Contiene el método fetch() utilizado para obtener o inicializar un recurso.
Headers
Representa los encabezados de la respuesta/solicitud, lo que le permite consultar y tomar diferentes acciones en función de los resultados.
Request
Representa una solicitud de recursos.
Response
Representa la respuesta a una solicitud.

Fetch mixin

Body
Proporciona métodos relacionados con el contenido de la respuesta/solicitud, lo que le permite declarar cuál es su tipo y cómo debe manejarse.

Especificaciones

Especificación Estado Comentario
Fetch Living Standard Definición inicial

Compatibilidad de navegadores

We're converting our compatibility data into a machine-readable JSON format. This compatibility table still uses the old format, because we haven't yet converted the data it contains. Find out how you can help!

Feature Chrome Edge Firefox (Gecko) IE Opera Safari (WebKit)
Soporte básico 42 14 39 (39)
34[1]
52 (52)[2]
Sin soporte 29
28[1]
10.1
Streaming del cuerpo de la respuesta 43 14 ? Sin soporte ? Sin soporte
Feature Android Webview Chrome for Android Edge Firefox Mobile (Gecko) IE Phone Opera Mobile Safari Mobile
Soporte básico 42 42 (Yes) (Yes) Sin soporte Sin soporte 10.1
Streaming del cuerpo de la respuesta 43 43 (Yes) (Yes) Sin soporte ? Sin soporte

[1] Esta API está implementada bajo un ajuste

[2] Antes de Firefox 52, get() solo devolvía el primer valor especificado en la cabecera, con getAll() devolviendo todos los valores. Desde Firefox 52 en adelante get() devuelve todos los valores y getAll() ha sido borrado.

[3] Actualmente, los flujos o streams de lectura están habilitados en Firefox,pero ocultos en las preferencias dom.streams.enabled y javascript.options.streams.

Ver también

Etiquetas y colaboradores del documento

Colaboradores en esta página: SSantiago90, erpheus, AlePerez92, robermorales, jmcarnero, enlinea777
Última actualización por: SSantiago90,