Spec-Zone.ru › Web APIs

Запрос

Базовая линия Широко доступна *

Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна во всех браузерах с марта 2017 года.

* Некоторые части этой функции могут иметь различный уровень поддержки.

  • Подробнее
  • Полная совместимость
  • Отправить отзыв

Примечание: Эта функция доступна в Потоках Web Workers.

Интерфейс Request API Fetch представляет запрос на ресурс.

Вы можете создать новый объект Request с помощью конструктора Request(), но вам, скорее всего, встретится объект Request в результате другой операции API, например, операции FetchEvent.request в обработчике сервиса.

Конструктор

Request()

Создаёт новый объект Request.

Свойства объекта

Request.body Только для чтения

Поток ReadableStream содержимого тела.

Request.bodyUsed Только для чтения

Содержит true или false для указания того, использовалось ли тело в запросе.

Request.cache Только для чтения

Содержит режим кэширования запроса (например, default, reload, no-cache).

Request.credentials Только для чтения

Содержит данные аутентификации запроса (например, omit, same-origin, include). По умолчанию same-origin.

Request.destination Только для чтения

Строка, описывающая тип запрашиваемого содержимого.

Request.headers Только для чтения

Содержит связанный объект Headers запроса.

Request.integrity Только для чтения

Содержит значение целостности подресурса subresource integrity запроса (например, sha256-BpfBw7ivV8q2jLiT13fxDYAe2tJllusRSZ273h2nFSE=).

Request.isHistoryNavigation Только для чтения

Логическое значение, указывающее, является ли запрос навигацией по истории.

Request.keepalive Только для чтения

Содержит параметр keepalive запроса (true или false), который указывает, сохранит ли браузер связанный запрос открытым, если страница, которая его инициировала, будет закрыта до завершения запроса.

Request.method Только для чтения

Содержит метод запроса (GET, POST, и т. д.).

Request.mode Только для чтения

Содержит режим запроса (например, cors, no-cors, same-origin, navigate).

Request.redirect Только для чтения

Содержит режим обработки перенаправлений. Может быть одним из follow, error, или manual.

Request.referrer Только для чтения

Содержит ссылку на отправителя запроса (например, client).

Request.referrerPolicy Только для чтения

Содержит политику ссылки на отправителя запроса (например, no-referrer).

Request.signal Только для чтения

Возвращает связанный с запросом AbortSignal.

Request.url Только для чтения

Содержит URL запроса.

Методы объекта

Request.arrayBuffer()

Возвращает промис, который разрешается представлением тела запроса в формате ArrayBuffer.

Request.blob()

Возвращает промис, который разрешается представлением тела запроса в формате Blob.

Request.bytes()

Возвращает промис, который разрешается представлением тела запроса в формате Uint8Array.

Request.clone()

Создаёт копию текущего объекта Request.

Request.formData()

Возвращает промис, который разрешается представлением тела запроса в формате FormData.

Request.json()

Возвращает промис, который разрешается результатом парсинга тела запроса как JSON.

Request.text()

Возвращает промис, который разрешается текстовым представлением тела запроса.

Примечание: Функции обработки тела запроса могут быть выполнены только один раз; последующие вызовы будут отклонены с ошибкой TypeError, показывающей, что поток тела уже был использован.

Примеры

В следующем фрагменте мы создаём новый запрос с помощью конструктора Request() (для файла изображения в том же каталоге, что и скрипт), а затем возвращаем некоторые свойства запроса:

const request = new Request("https://www.mozilla.org/favicon.ico");

const url = request.url;
const method = request.method;
const credentials = request.credentials;

Затем вы можете выполнить запрос с помощью объекта Request как параметра вызова fetch(), например:

fetch(request)
  .then((response) => response.blob())
  .then((blob) => {
    image.src = URL.createObjectURL(blob);
  });

В следующем фрагменте мы создаём новый запрос с помощью конструктора Request() с некоторыми начальными данными и содержимым тела для запроса API, которому требуется тело с данными:

const request = new Request("https://example.com", {
  method: "POST",
  body: '{"foo": "bar"}',
});

const url = request.url;
const method = request.method;
const credentials = request.credentials;
const bodyUsed = request.bodyUsed;

Примечание: Тело может быть только объектом Blob, ArrayBuffer, TypedArray, DataView, FormData, URLSearchParams, ReadableStream, или строковым литералом. Для добавления JSON-объекта в тело необходимо использовать `JSON.stringify`.

Вы можете выполнить запрос к API, передав объект Request в качестве параметра вызова fetch(), например, и получить ответ:

fetch(request)
  .then((response) => {
    if (response.status === 200) {
      return response.json();
    } else {
      throw new Error("Something went wrong on API server!");
    }
  })
  .then((response) => {
    console.debug(response);
    // …
  })
  .catch((error) => {
    console.error(error);
  });

Спецификации

Спецификация
Fetch
# request-class

Совместимость с браузерами

Рабочие столы Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на iOS Samsung Internet WebView Android
END_OF_DOCUMENT_MARKER
Request
40Начиная с Chrome 47, значения по умолчанию для свойств аргумента init изменились. mode по умолчанию равно same-origin (ранее no-cors). credentials по умолчанию равно include (ранее same-origin). redirect по умолчанию равно follow (ранее manual).
14 39 27 10.1
40Начиная с Chrome Android 47, значения по умолчанию для свойств аргумента init изменились. mode по умолчанию равно same-origin (ранее no-cors). credentials по умолчанию равно include (ранее same-origin). redirect по умолчанию равно follow (ранее manual).
39 27 10.3
4.0Начиная с Samsung Internet 5.0, значения по умолчанию для свойств аргумента init изменились. mode по умолчанию равно same-origin (ранее no-cors). credentials по умолчанию равно include (ранее same-origin). redirect по умолчанию равно follow (ранее manual).
40Начиная с WebView Android 47, значения по умолчанию для свойств аргумента init изменились. mode по умолчанию равно same-origin (ранее no-cors). credentials по умолчанию равно include (ранее same-origin). redirect по умолчанию равно follow (ранее manual).
Request 42
40–42Доступно только в service workers.
14 39 29
27–29Доступно только в service workers.
10.1 42
40–42Доступно только в service workers.
39 29
27–29Доступно только в service workers.
10.3 4.0 42
40–42Доступно только в service workers.
arrayBuffer 42 14 39 29 10.1 42 39 29 10.3 4.0 42
blob 42 14 39 29 10.1 42 39 29 10.3 4.0 42
body 105 105 Нет 91 11.1 105 Нет 72 11.3 20.0 105
bodyUsed 42 14 39 29 10.1 42 39 29 10.3 4.0 42
bytes 132 132 128 117 18 132 128 Нет 18 Нет 132
cache 64 14 48 51 10.1 64 48 47 10.3 9.0 64
clone 40 14 39 27 10.1 40 39 27 10.3 4.0 40
credentials 40 14 39 27 10.1 40 39 27 10.3 4.0 40
destination 65 14 61 52 10.1 65 61 47 10.3 9.0 65
duplex 131 131 Нет 116 Нет Нет Нет Нет Нет Нет Нет
formData 60 79 39 47 14.1
11.1Метод существует, но всегда отклоняется с NotSupportedError. См. ошибку 215671.
60 39 44 14.5
11.3Метод существует, но всегда отклоняется с NotSupportedError. См. ошибку 215671.
8.0 60
headers 40 14 39 27 10.1 40 39 27 10.3 4.0 40
integrity 46 14 51 33 10.1 46 51 33 10.3 5.0 46
isHistoryNavigation 69 79 Нет 56 Нет 69 Нет 48 Нет 10.0 69
json 42 14 39 29 10.1 42 39 29 10.3 4.0 42
keepalive 66 15 133 53 13 66 133 47 13 9.0 66
method 40 14 39 27 10.1 40 39 27 10.3 4.0 40
mode 40 14 39 27 10.1 40 39 27 10.3 4.0 40
redirect 46 14 43 33 10.1 46 43 33 10.3 5.0 46
referrer 40 14 39 27 10.1 40 39 27 10.3 4.0 40
referrerPolicy 52 14 47 39 10.1 52 47 41 10.3 7.2 52
signal 66 16 57 53 12.1 66 57 47 12.2 9.0 66
targetAddressSpace 124 124 Нет 110 Нет 124 Нет 82 Нет 27.0 124
text 42 14 39 29 10.1 42 39 29 10.3 4.0 42
url
40Поддержка фрагментов добавлена в Chrome 59.
14 39
27Поддержка фрагментов добавлена в Opera 46.
10.1
40Поддержка фрагментов добавлена в Chrome Android 59.
39
27Поддержка фрагментов добавлена в Opera 46.
10.3
4.0Поддержка фрагментов добавлена в Samsung Internet 7.0.
40Поддержка фрагментов добавлена в WebView Android 59.

См. также

  • API сервисных рабочих процессов
  • Управление доступом к ресурсам (CORS)
  • HTTP

© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/Request

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API