Viendo hilos antiguos de este subforo con XMLHttpRequest a pelo (con su onreadystatechange y sus readyState === 4), me pregunto cuánta gente sigue escribiéndolo así hoy.
La fetch API lleva ya bastantes años siendo soporte nativo en todos los navegadores relevantes, con una sintaxis basada en promesas mucho más cómoda que el XHR clásico. Y para proyectos algo más grandes, axios sigue siendo muy popular por cosas que fetch no trae de serie (interceptores, cancelación de peticiones más simple, manejo de errores HTTP como excepción en vez de tener que comprobar response.ok a mano).
¿Alguien sigue usando XMLHttpRequest directamente en 2026, aunque sea por mantener código legacy, o ya está completamente desterrado incluso en proyectos antiguos? Y entre fetch y axios para proyecto nuevo, ¿qué preferís y por qué?
Bruno
XMLHttpRequest a pelo lo veo casi exclusivamente en dos sitios: código legacy que nadie ha tocado desde hace años (y que no compensa reescribir solo por modernizar sin motivo funcional) y en algunas librerías de bajo nivel que necesitan compatibilidad con entornos muy antiguos o control muy fino sobre el progreso de la subida/descarga (algo que fetch hace peor de serie, aunque ya se puede conseguir con ReadableStream).
Para código nuevo, fetch ya cubre el 90% de los casos sin necesitar ninguna librería externa, con una sintaxis basada en promesas que se integra de forma natural con async/await. Axios sigue ganando terreno en proyectos algo más grandes por cosas muy concretas que fetch no trae de serie: interceptores para añadir cabeceras o manejar tokens expirados de forma centralizada, cancelación de peticiones más cómoda, y que trata los códigos HTTP de error como excepción automáticamente (con fetch tienes que comprobar response.ok tú mismo, un olvido muy común que hace que errores 404/500 se traten como si hubieran ido bien).
Mi regla: proyecto pequeño o sin dependencias externas, fetch a secas. Proyecto con muchas llamadas a API y necesidad de lógica común (auth, refresh de tokens, logging de errores), axios sin dudarlo.
Carlos