Содержимое ответа
Fetch API— современный интерфейс в JavaScript для выполнения HTTP-запросов и обработки ответов. Он заменяет устаревший XMLHttpRequest и предоставляет более простой и гибкий способ работы с сетевыми запросами.developer.mozilla.orglearnjs.rusky.pro
Базовый синтаксис
Функция
fetch()имеет следующий синтаксис:
const promise = fetch(url, [options]);
- url— обязательный параметр, строка с адресом ресурса, к которому отправляется запрос.
- options— необязательный объект, позволяющий настроить запрос: указать HTTP-метод, заголовки, тело запроса и другие параметры.
Если
optionsне указан,
fetch()автоматически выполняет простой GET-запрос — скачивает содержимое по указанному адресу.skillbox.ru
Пример GET-запроса
fetch('http://test.test') .then(response => { // Проверка успешности ответа if (!response.ok) { throw new Error(`Ошибка HTTP: ${response.status}`); } return response.json(); // Преобразование ответа в JSON }) .then(data => console.log(data)) .catch(error => console.error('Ошибка:', error));
Дополнительные параметрыoptions
Некоторые возможности настройки запроса:
- method— HTTP-метод (GET, POST, PUT, DELETE и т. д.).
- headers— объект с заголовками запроса (например, можно указать тип содержимого или токен аутентификации).
- body— тело запроса. Обычно используется в запросах типа POST или PUT для отправки данных на сервер. Может быть строкой (например, в формате JSON), объектом FormData, Blob, BufferSource или URLSearchParams.
Пример POST-запроса с JSON-данными:
const newUser = { name: 'John Doe', email: 'redacted@example.com' }; fetch('http://test.test', { method: 'POST', headers: { 'Content-Type': 'application/json', }, body: JSON.stringify(newUser), });
Обработка ответов
Когда метод
fetch()выполняется, он возвращает промис, который разрешается в объект
Response, представляющий HTTP-ответ. У объекта
Responseесть методы для обработки полученных данных:
response.json()
— преобразует ответ в JSON-объект;response.text()
— получает ответ в виде текста;response.blob()
— работает с бинарными данными (изображения, файлы);response.formData()
— получает ответ в виде объекта FormData;response.arrayBuffer()
— получает низкоуровневое представление данных.
Эти методы также возвращают промис, поэтому требуется дополнительная обработка через
.then()или
await.sky.pro
Обработка ошибок
При использовании
fetch()могут возникать разные ошибки: серверная ошибка (500), ошибка «не найдено» (404), сетевая ошибка, ошибка CORS и т. д..dev.to
Некоторые способы обработки ошибок:
- Проверка статуса ответа.Можно использовать свойство
response.ok
, чтобы определить, был ли запрос успешным (будетtrue
, если код статуса находится в диапазоне 200–299).dev.to - Использование
try/catch
.Вызовfetch()
можно обернуть в блокtry/catch
для обработки ошибок.dev.to - Проверка CORS-настроек.Если запрос идёт к внешнему домену, убедитесь, что сервер разрешает его с соответствующими заголовками CORS.skillbox.rutrackjs.com
Дополнительные возможности
- Потоковая обработка данных.Можно работать с данными по мере их поступления.
- Настройка кеширования и режима CORSчерез объект
options
.
Fetch API поддерживается всеми современными браузерами.learn.javascript.ru