Получить доступ

Работа с сетью — fetch и REST

Основа

Запросы к серверу из браузера — fetch, JSON, обработка ошибок, отмена, CORS.

async function loadOrder(id, signal) {
  const res = await fetch(`/api/orders/${id}`, { signal, headers: { Accept: "application/json" } });
  if (!res.ok) throw new Error(`HTTP ${res.status}`);   // fetch не бросает на 4xx/5xx
  return res.json();
}
const ctrl = new AbortController();
loadOrder(42, ctrl.signal);
ctrl.abort();   // например, при уходе со страницы

Что важно знать

  • fetch отклоняет промис только при сетевой ошибке; коды 4xx и 5xx нужно проверять через res.ok.
  • Отправка JSON: method: "POST", body: JSON.stringify(data), заголовок Content-Type: application/json.
  • CORS: запрос на другой домен браузер разрешит, только если сервер ответил нужными заголовками; «непростые» запросы предваряются preflight OPTIONS. Это защита браузера, а не сервера.
  • Cookies на другой домен — credentials: "include" и согласие сервера.
  • Состояния загрузки и ошибки, повторы с паузой, гонки ответов (старый ответ пришёл позже нового) — отмена через AbortController.
  • В приложениях серверное состояние обычно ведут библиотеки вроде TanStack Query: кэш, повторы, обновление в фоне.

Вопросы с собеседований

Документация

← Вся карта «Frontend-разработчик»

Закрытая бета

Знать тему — половина дела

На живом собеседовании sotto слышит вопрос интервьюера и показывает короткий ответ и план. Оставьте контакт — пришлём доступ и промокод.

  • Промокод на 2 часа — сверх пробных 30 минут
  • Программа для Windows — скачать сразу, войти — через Яндекс ID или VK ID
  • Прямая связь с разработчиком: что улучшить — сделаем