Request
Baseline
Widely available
*
This feature is well established and works across many devices and browser versions. It’s been available across browsers since март 2017 г..
* Some parts of this feature may have varying levels of support.
Интерфейс 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Только для чтения-
Возвращает строку из
RequestDestinationenum, описывая назначение запроса. Это строка, указывающая тип запрошенных данных. 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
JSONrepresentation of the request body. Body.text()-
Returns a promise that resolves with an
String(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, String или 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 # request-class |