--- title: Request.mode slug: Web/API/Request/mode translation_of: Web/API/Request/mode ---
Read-only свойство mode
интерфейса {{domxref("Request")}} описывает режим запроса (например, cors
, no-cors
, same-origin
или navigate
.) Используется для проверки, вызывает ли кросс-доменный запрос корректный ответ, и какие свойства ответа доступны для чтения.
var myMode = request.mode;
Значения RequestMode
.
Соответствующие доступные значения:
same-origin
— Если запрос сделан к другому origin в этом режиме, то это вызовет ошибку. Можно использовать этот режим, чтобы проверить, что запрос всегда будет обращён к тому же origin, что и текущий.no-cors
— Разрешает использование только HEAD
, GET
или POST
методов и простых заголовков (т.е. разрешены только простые запросы). Если какой-либо ServiceWorkers перехватит запрос, то он не сможет добавить или изменить заголовки, кроме простых. Также, для JavaScript может быть ограничен доступ к любому свойству объекта ответа {{domxref("Response")}}. Это позволяет наверняка знать, что ServiceWorkers не изменили семантику и предотвратить проблемы безопасности и конфиденциальности, возникающие при утечке данных между доменами.cors
— Разрешает кросс-доменные запросы. Например, чтобы получить доступ к некому API, предоставляемое третей стороной. Ожидается, что запрос в этом режиме будет придерживаться CORS протокола. В объекте ответа {{domxref("Response")}} доступен ограниченный набор заголовков, но тело доступно для чтения.navigate
— Режим, поддерживающий навигацию. Значение navigate
предназначено только для использования в HTML навигации. Запрос в этом режиме создаётся только во время навигации между страницами.Запрос может быть создан разными способами и режим запроса зависит от конкретных средств, с помощью которых он был инициирован.
Например, когда объект Request
создаётся с помощью конструктора {{domxref("Request.Request")}}, свойство mode
этого Request
будет иметь значение cors
.
Однако, запросы созданные не конструктором {{domxref("Request.Request")}}, будут использовать режим no-cors
. Например, для встроенных ресурсов, где запрос инициируется из разметки, если отсутствует атрибут crossorigin
, то запрос в большинстве случаев будет выполнен в режиме no-cors
— то есть для элементов {{HTMLElement("link")}} или {{HTMLElement("script")}} (кроме использования с модулями), или {{HTMLElement("img")}}, {{HTMLElement("audio")}}, {{HTMLElement("video")}}, {{HTMLElement("object")}}, {{HTMLElement("embed")}}, или {{HTMLElement("iframe")}}.
В этой части кода создаётся новый запрос (для взятия файла картинки) через конструктор {{domxref("Request.Request()")}}, затем полученный режим сохраняется в переменной:
var myRequest = new Request('flowers.jpg'); var myMode = myRequest.mode; // вернёт "cors" по умолчанию
Specification | Status | Comment |
---|---|---|
{{SpecName('Fetch','#dom-request-mode', 'mode')}} | {{Spec2('Fetch')}} | Initial definition |
{{Compat("api.Request.mode")}}