Sé que Fetch API usa Promise
sy ambos le permiten hacer solicitudes AJAX a un servidor.
He leído que Fetch API tiene algunas características adicionales, que no están disponibles en XMLHttpRequest
(y en el polyfill de Fetch API, ya que está basado en XHR
).
¿Qué capacidades adicionales tiene la API Fetch?
javascript
ajax
xmlhttprequest
fetch-api
ilyabasiuk
fuente
fuente
fetch(url).then(function(data) (...));
no es más simple que usarXMLHttpRequest
para hacer lo mismo? Puede tener muchas otras características, pero claro, es más fácil de usar para cosas comunes. Es una API limpiada.Respuestas:
Hay algunas cosas que puede hacer con fetch y no con XHR:
no-cors
solicitudes, obteniendo una respuesta de un servidor que no implementa CORS. No puede acceder al cuerpo de respuesta directamente desde JavaScript, pero puede usarlo con otras API (por ejemplo, la API de caché);Hay un par de cosas que puedes hacer con XHR que aún no puedes hacer con fetch, pero estarán disponibles tarde o temprano (lee el párrafo "Mejoras futuras" aquí: https: //hacks.mozilla .org / 2015/03 / this-api-is-so-fetching / ):
Este artículo https://jakearchibald.com/2015/thats-so-fetch/ contiene una descripción más detallada.
fuente
fetch
solicitudes no se pueden reproducir en las Herramientas para desarrolladores.fetch
puede solicitar archivos, pero XHR no.ir a buscar
ReadableStream
instancias ya que los cuerpos de solicitud aún están por llegar )XHR
mozAnon
o elAnonXMLHttpRequest
constructor)FormData
instanciasfetch
'sno-cors
modo defuente
fetch
También le falta progreso. con XHR puedes seguir el progreso delprogress
eventoResponse#body
.Las respuestas anteriores son buenas y proporcionan buenas ideas, pero comparto la misma opinión que la que compartí en esta entrada del blog de desarrolladores de Google en que la principal diferencia (desde una perspectiva práctica) es la conveniencia de la promesa incorporada devuelta de
fetch
En lugar de tener que escribir código como este
podemos limpiar las cosas y escribir algo un poco más conciso y legible con promesas y sintaxis moderna
fuente