JavaScript·100 вопросов

Как сделать 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 ошибкой промиса, поэтому ручная проверка кодов ответа убережет ваше приложение от неожиданных сбоев при обработке некорректных данных на сервере.

Полезен ли этот ответ?

Другие вопросы этой темы

Связанные вопросы из других тем