Sobes.tech
Junior
91
questionbank

Что принимает метод fetch?

AI答案

sobes.tech AI

Метод fetch принимает один обязательный аргумент — путь к запросу (RequestInfo или URL) — и один опциональный аргумент — объект настроек (RequestInit).

Обязательный аргумент (input):

  • Строка: URL ресурса.
  • Объект Request: Экземпляр класса Request, предоставляющий более гибкую настройку запроса (заголовки, метод и т.д.).

Опциональный аргумент (init): Объект с полями, описывающими настройки запроса. Некоторые часто используемые поля:

  • method: HTTP-метод запроса (GET, POST, PUT, DELETE, OPTIONS, и т.д.).
  • headers: Заголовки запроса. Может быть объектом вида ключ-значение или экземпляром класса Headers.
  • body: Тело запроса (для методов, отличных от GET или HEAD). Может быть строкой, ArrayBuffer, TypedArray, DataView, Blob, FormData, URLSearchParams или ReadableStream.
  • mode: Режим запроса (cors, no-cors, same-origin, navigate).
  • credentials: Настройка отправки учетных данных (omit, same-origin, include).
  • cache: Настройка кэширования (default, no-store, reload, no-cache, force-cache, only-if-cached).
  • redirect: Как обрабатывать перенаправления (follow, error, manual).
  • referrer: Значение для заголовка Referer.
  • referrerPolicy: Политика передачи заголовка Referer.
  • integrity: Значение для заголовка Integrity. Используется для Subresource Integrity.
  • keepalive: Булево значение, указывающее, что запрос должен оставаться в активном состоянии после завершения страницы (для отправки аналитики или отчетов).
  • signal: Экземпляр AbortSignal для отмены запроса.
  • window: Объект Window, с которым ассоциируется запрос (по умолчанию текущее окно).

Пример использования:

// Запрос GET
fetch('/api/users')
  .then(response => response.json())
  .then(data => console.log(data))
  .catch(error => console.error('Ошибка:', error));

// Запрос POST с телом и заголовками
fetch('/api/products', {
  method: 'POST', // HTTP метод
  headers: {
    'Content-Type': 'application/json', // Тип отправляемых данных
    'Authorization': 'Bearer your_token' // Пример авторизационного заголовка
  },
  body: JSON.stringify({ name: 'Новый продукт', price: 100 }) // Тело запроса
})
  .then(response => {
    if (!response.ok) {
      throw new Error(`HTTP error! status: ${response.status}`);
    }
    return response.json();
  })
  .then(data => console.log('Успех:', data))
  .catch(error => console.error('Ошибка:', error));