Как отправить HTTP-запрос
Короткий ответ
fetch() отправляет запрос и возвращает промис с ответом. response.json() читает тело как JSON:
const response = await fetch('https://api.example.com/users/1');
const user = await response.json();
console.log(user.name);Отправка JSON
Для POST-запроса укажите метод, заголовок Content-Type и тело в виде строки JSON:
const response = await fetch('https://api.example.com/users', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ name: 'Anna', email: 'anna@example.com' }),
});
const created = await response.json();Заголовки
Токен для API обычно передают в заголовке Authorization:
const response = await fetch('https://api.example.com/orders', {
headers: { Authorization: `Bearer ${token}` },
});Частая ошибка
fetch() завершается с ошибкой только при сбое сети. Ответ со статусом 404 или 500 считается успешным, поэтому проверяйте response.ok:
const response = await fetch('https://api.example.com/users/999');
if (!response.ok) {
throw new Error(`Request failed with status ${response.status}`);
}Функции из этого ответа
- fetch — Отправляет HTTP-запрос и возвращает промис ответа.
- JSON.parse — Разбирает строку JSON и возвращает значение.