JavaScript·100 питань

QUESTION: Як зробити POST запит fetch?

Відповідь

Для надсилання даних на сервер із використанням сучасного Fetch API необхідно передати у функцію fetch другий аргумент — об'єкт конфігурації, що містить метод, заголовки та тіло запиту. Стандартний POST-запит виглядає наступним чином: fetch(url, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(data) }). такий підхід дозволяє передавати структуровані дані, попередньо серіалізовані у формат JSON за допомогою методу JSON.stringify.

Вкрай важливо правильно вказувати заголовок Content-Type: application/json в об'єкті headers, щоб сервер на бекенді розумів, у якому форматі передається тіло запиту і міг коректно його розпарсити. Якщо ж вашою метою є завантаження файлів на сервер, наприклад, картинок чи документів, замість JSON використовується об'єкт FormData. У такому разі в body передається екземпляр FormData з доданими файлами, а браузер автоматично встановлює правильний заголовок multipart/form-data разом із граничною міткою (boundary).

Після надсилання POST-запиту ви отримуєте проміс з об'єктом відповіді, з якого можна витягти дані за допомогою конструкцій на кшталт await response.json(). Проте перед цим настійно рекомендується перевіряти успішність операції через властивість response.ok або умову response.status. Пам'ятайте, що fetch не вважає статус 400 чи 500 помилкою промісу, тому ручна перевірка кодів відповіді вбереже ваш додаток від несподіваних збоїв під час обробки некоректних даних на сервері.

Чи корисна ця відповідь?

Інші питання цієї теми

Пов’язані питання з інших тем