Запрос
Базовая линия Широко доступна *
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна во всех браузерах с марта 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.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 | |
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 |
4240–42Доступно только в service workers. |
14 | 39 | 2927–29Доступно только в service workers. |
10.1 | 4240–42Доступно только в service workers. |
39 | 2927–29Доступно только в service workers. |
10.3 | 4.0 | 4240–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 | 60 | 39 | 44 | 14.5 | 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. |
См. также
© 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