Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

183
Vistas
Obtener API frente a XMLHttpRequest

Sé que Fetch API usa Promise s y ambos le permiten realizar 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?

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Hay algunas cosas que puede hacer con fetch y no con XHR:

  • Puede usar la API de caché con los objetos de solicitud y respuesta;
  • Puede realizar solicitudes no-cors y obtener una respuesta de un servidor que no implementa CORS. No puede acceder al cuerpo de la respuesta directamente desde JavaScript, pero puede usarlo con otras API (por ejemplo, la API de caché);
  • Respuestas de transmisión (con XHR, la respuesta completa se almacena en la memoria, con fetch podrá acceder a la transmisión de bajo nivel). Esto no está disponible todavía en todos los navegadores, pero lo estará pronto.

Hay un par de cosas que puede hacer con XHR que aún no puede hacer con fetch, pero estarán disponibles tarde o temprano (lea el párrafo "Mejoras futuras" aquí: https://hacks.mozilla .org/2015/03/this-api-is-tan-fetching/ ):

  • Cancelar una solicitud (esto ahora funciona en Firefox y Edge, como explica @sideshowbarker en su comentario);
  • Informe de progreso.

Este artículo https://jakearchibald.com/2015/thats-so-fetch/ contiene una descripción más detallada.

over 4 years ago · Santiago Trujillo Denunciar

0

buscar

  • falta un método incorporado para consumir documentos
  • no hay forma de establecer un tiempo de espera todavía
  • no se puede anular el encabezado de respuesta de tipo de contenido
  • si el encabezado de respuesta de longitud de contenido está presente pero no expuesto , la longitud total del cuerpo se desconoce durante la transmisión
  • llamará al controlador de cancelación de la señal incluso si la solicitud se ha completado
  • no hay progreso de carga (el soporte para instancias de ReadableStream como cuerpos de solicitud aún está por llegar )
  • no es compatible --allow-file-access-from-files (chromium)

XHR

  • no hay forma de no enviar cookies (aparte de usar el indicador mozAnon no estándar o el constructor AnonXMLHttpRequest )
  • no puede devolver instancias FormData
  • no tiene un equivalente al modo no-cors de fetch
  • sigue siempre los redireccionamientos
over 4 years ago · Santiago Trujillo Denunciar

0

Las respuestas anteriores son buenas y brindan buenos conocimientos, pero comparto la misma opinión que se comparte en esta entrada del blog de desarrolladores de Google en el sentido de que la principal diferencia (desde una perspectiva práctica) es la conveniencia de la promesa incorporada devuelta por fetch

En lugar de tener que escribir código como este

 function reqListener() { var data = JSON.parse(this.responseText); } function reqError(err) { ... } var oReq = new XMLHttpRequest(); oReq.onload = reqListener; oReq.onerror = reqError; oReq.open('get', './api/some.json', true); oReq.send();

podemos limpiar las cosas y escribir algo un poco más conciso y legible con promesas y sintaxis moderna

 fetch('./api/some.json') .then((response) => { response.json().then((data) => { ... }); }) .catch((err) => { ... });
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda