Sobes.tech
Middle

Welke bibliotheken werden gebruikt voor het verzenden van netwerkverzoeken? Wat is het verschil tussen Axios en Fetch? Wat zijn interceptors?

sobes.tech AI

Antwoord van AI

Для отправки сетевых запросов в фронтенде часто используют библиотеки Axios и встроенный Fetch API.

Отличия Axios от Fetch:

  • Axios автоматически преобразует JSON-ответы, Fetch требует вызова .json().
  • Axios поддерживает отмену запросов через CancelToken, в Fetch это сложнее реализовать.
  • Axios автоматически обрабатывает ошибки HTTP статусов (например, 404), Fetch считает ошибкой только сетевые сбои.
  • Axios поддерживает интерцепторы, удобные для обработки запросов и ответов.

Интерцепторы — это функции, которые перехватывают запросы или ответы до того, как они будут обработаны в основном коде. Это удобно для:

  • Добавления заголовков авторизации.
  • Логирования запросов и ответов.
  • Глобальной обработки ошибок.

Пример использования интерцептора в Axios:

import axios from 'axios';

axios.interceptors.request.use(config => {
  config.headers['Authorization'] = 'Bearer token';
  return config;
});

axios.interceptors.response.use(response => {
  // обработка успешного ответа
  return response;
}, error => {
  // глобальная обработка ошибок
  return Promise.reject(error);
});