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

«В чем разница между AJAX, XMLHttpRequest, Fetch и Axios» — вопрос из категории Асинхронность, который задают на 10% собеседований Frontend Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

AJAX — это концепция асинхронного обмена данными между клиентом и сервером без перезагрузки страницы. XMLHttpRequest (XHR) — это старый нативный API браузера для реализации AJAX.

Fetch — современный API, работающий на промисах, более удобный и гибкий, чем XHR.

Axios — сторонняя библиотека для HTTP-запросов, работает как в браузере, так и в Node.js, поддерживает промисы, перехватчики и автоматическое преобразование JSON.

Пример Fetch:

fetch('https://api.example.com/data')
  .then(response => response.json())
  .then(data => console.log(data));

Пример Axios:

axios.get('https://api.example.com/data')
  .then(response => console.log(response.data));

Основные отличия:

  • XHR — низкоуровневый, сложный в использовании.
  • Fetch — современный, но требует обработки ошибок вручную.
  • Axios — удобный, с расширенными возможностями.