Request
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2017.
Интерфейс Request
из Fetch API является запросом ресурсов или данных.
Создать новый объект Request
можно, используя конструктор Request()
, однако чаще всего встречается способ возврата объекта Request
, как результат операции API. Например такой как service worker FetchEvent.request
.
Конструктор
Request()
-
Создаёт новый
Request
объект.
Параметры
Request.cache
Только для чтения-
Содержит кешированное состояние запроса (напр.,
default
,reload
,no-cache
). Request.context
Только для чтения Устарело-
Содержит контекст запроса (напр.,
audio
,image
,iframe
, и т.д..) Request.credentials
Только для чтения-
Содержит данные идентификации запроса (напр.,
"omit"
,"same-origin"
,"include"
). Значение по умолчанию:"same-origin"
. Request.destination
Только для чтения-
Возвращает строку из
RequestDestination
enum, описывая назначение запроса. Это строка, указывающая тип запрошенных данных. Request.headers
Только для чтения-
Содержит назначенный
Headers
объект запроса (заголовки). Request.integrity
Только для чтения-
Содержит "subresource integrity" значение запроса (напр.,
sha256-BpfBw7ivV8q2jLiT13fxDYAe2tJllusRSZ273h2nFSE=
). Request.method
Только для чтения-
Содержит метод запроса (
GET
,POST
, и т.д.) Request.mode
Только для чтения-
Содержит режим запроса (напр.,
cors
,no-cors
,same-origin
,navigate
.) Request.redirect
Только для чтения-
Содержит режим перенаправления. Может быть одним из следующих:
follow
,error
, илиmanual
. Request.referrer
Только для чтения-
Содержит значение "referrer" ("ссылающийся") запроса (например.,
client
). Request.referrerPolicy
Только для чтения-
Содержит политику "ссылающегося" данного запроса (e.g.,
no-referrer
). Request.url
Только для чтения-
Содержит URL запроса.
Request
имплементирует Body
, таким образом наследуя следующие параметры:
body
Только для чтения-
Простой getter используемый для раскрытия
ReadableStream
"тела" (body) содержимого. bodyUsed
Только для чтения-
Хранит
Boolean
, декларирующее использовалось ли "тело" ранее в ответе.
Методы
Request.clone()
-
Создаёт копию текущего
Request
объекта.
Request
имплементирует Body
, таким образом наследуя следующие параметры:
Body.arrayBuffer()
-
Возвращает промис, который выполняется, возвращая
ArrayBuffer
репрезентацию тела запроса. Body.blob()
-
Возвращает promise
Body.formData()
-
Возвращает promise который разрешается с помощью
FormData
представления тела запроса. Body.json()
-
Returns a promise that resolves with a
JSON
representation of the request body. Body.text()
-
Returns a promise that resolves with an
USVString
(text) representation of the request body.
Примечание:
The Body
functions can be run only once; subsequent calls will resolve with empty strings/ArrayBuffers.
Examples
In the following snippet, we create a new request using the Request()
constructor (for an image file in the same directory as the script), then return some property values of the request:
const request = new Request("https://www.mozilla.org/favicon.ico");
const URL = request.url;
const method = request.method;
const credentials = request.credentials;
You could then fetch this request by passing the Request
object in as a parameter to a fetch()
call, for example:
fetch(request)
.then((response) => response.blob())
.then((blob) => {
image.src = URL.createObjectURL(blob);
});
In the following snippet, we create a new request using the Request()
constructor with some initial data and body content for an api request which need a body payload:
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
, BufferSource
, FormData
, URLSearchParams
, USVString
или ReadableStream
поэтому, для добавления объекта JSON в полезную нагрузку вам необходимо структурировать этот объект.
Вы можете получить этот запрос API, передав объект Request в качестве параметра для вызова fetch()
, например, и получить ответ:
fetch(request)
.then((response) => {
if (response.status === 200) {
return response.json();
} else {
throw new Error("Что-то пошло не так на API сервере.");
}
})
.then((response) => {
console.debug(response);
// ...
})
.catch((error) => {
console.error(error);
});
Спецификации
Specification |
---|
Fetch Standard # request-class |
Совместимость с браузерами
BCD tables only load in the browser