PassFront
  1. PassFront
  2. База знаний
  3. DOM и браузер

В чем разница между AJAX, XMLHttpRequest, Fetch и Axios?

DOM и браузер

AJAX — это концепция асинхронных запросов из браузера; XMLHttpRequest, Fetch и Axios — конкретные способы её реализации.

AJAX

AJAX (Asynchronous JavaScript and XML) — не API, а подход: обновлять данные с сервера без перезагрузки страницы. Название историческое (XML), сейчас чаще JSON. Реализуется через XHR или Fetch.

XMLHttpRequest (XHR)

Старый встроенный API для запросов. Работает, но многословен, на колбэках/событиях:

const xhr = new XMLHttpRequest();
xhr.open('GET', '/api');
xhr.onload = () => console.log(xhr.responseText);
xhr.send();

Fetch

Современный встроенный API на промисах:

const res = await fetch('/api');
const data = await res.json();
  • Проще XHR, промисный.
  • Минусы: 4xx/5xx не считаются ошибкой (нужно проверять res.ok), нет встроенных таймаутов/интерсепторов, ручной res.json().

Axios

Библиотека (не встроена) поверх XHR с богатым API:

  • Автопарсинг JSON, интерсепторы, таймауты, отмена, 4xx/5xx → catch.

Соотношение

  • AJAX — идея (асинхронные запросы).
  • XHR — старая реализация.
  • Fetch — современная встроенная реализация.
  • Axios — удобная библиотека-обёртка.

Коротко для собеседования

AJAX — концепция асинхронных запросов без перезагрузки. XMLHttpRequest — старый многословный API на колбэках. Fetch — современный встроенный на промисах (но 4xx/5xx не ошибка, нет интерсепторов). Axios — внешняя библиотека с автопарсингом, интерсепторами и обработкой статусов.

Другие вопросы раздела