Отправка HTTP-запроса

JavaScript:
Отправка HTTP-запроса

Как это сделать:

JavaScript использует API fetch для отправки запросов. Вот как сделать простой GET-запрос:

fetch('https://jsonplaceholder.typicode.com/posts/1')
  .then(response => response.json())
  .then(json => console.log(json))
  .catch(err => console.error('Ошибка:', err));

На выходе будет JSON-данные с URL. Просто, правда?

А для POST-запроса:

fetch('https://jsonplaceholder.typicode.com/posts', {
  method: 'POST',
  body: JSON.stringify({
    title: 'foo',
    body: 'bar',
    userId: 1,
  }),
  headers: {
    'Content-type': 'application/json; charset=UTF-8',
  },
})
  .then(response => response.json())
  .then(json => console.log(json))
  .catch(err => console.error('Ошибка:', err));

Это отправляет новые данные и выводит ответ сервера.

Погружение

HTTP-запросы существуют с начала веба — подумайте об HTML-формах. XMLHttpRequest (XHR) когда-то был основным методом отправки запросов в JavaScript, но он неудобен.

На смену пришел fetch, современный подход на основе промисов, который делает его более чистым и надежным. В отличие от XHR, fetch обрабатывает как запросы, так и ответы в едином API и встроен в язык, без необходимости использования библиотек.

Альтернативы? Конечно. Библиотеки вроде Axios или Ajax jQuery все еще используются. Они предлагают некоторые удобства в синтаксисе и решения для конкретных проблем, но fetch это родной и, в целом, путь вперед.

Детали реализации? Не забывайте обрабатывать ошибки, работать с различными типами ответов и быть в курсе правил обмена ресурсами между разными источниками (CORS).

Смотрите также