Request.mode

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.

* Some parts of this feature may have varying levels of support.

Read-only свойство mode интерфейса Request описывает режим запроса (например, cors, no-cors, same-origin или navigate.) Используется для проверки, вызывает ли кросс-доменный запрос корректный ответ, и какие свойства ответа доступны для чтения.

Синтаксис

var myMode = request.mode;

Значения

Значения RequestMode.

Соответствующие доступные значения:

  • same-origin — Если запрос сделан к другому origin в этом режиме, то это вызовет ошибку. Можно использовать этот режим, чтобы проверить, что запрос всегда будет обращён к тому же origin, что и текущий.
  • no-cors — Разрешает использование только HEAD, GET или POST методов и простых заголовков (т.е. разрешены только простые запросы). Если какой-либо ServiceWorkers перехватит запрос, то он не сможет добавить или изменить заголовки, кроме простых. Также, для JavaScript может быть ограничен доступ к любому свойству объекта ответа Response. Это позволяет наверняка знать, что ServiceWorkers не изменили семантику и предотвратить проблемы безопасности и конфиденциальности, возникающие при утечке данных между доменами.
  • cors — Разрешает кросс-доменные запросы. Например, чтобы получить доступ к некому API, предоставляемое третей стороной. Ожидается, что запрос в этом режиме будет придерживаться CORS протокола. В объекте ответа Response доступен ограниченный набор заголовков, но тело доступно для чтения.
  • navigate — Режим, поддерживающий навигацию. Значение navigate предназначено только для использования в HTML навигации. Запрос в этом режиме создаётся только во время навигации между страницами.

Default mode

Запрос может быть создан разными способами и режим запроса зависит от конкретных средств, с помощью которых он был инициирован.

Например, когда объект Request создаётся с помощью конструктора Request.Request, свойство mode этого Request будет иметь значение cors.

Однако, запросы созданные не конструктором Request.Request, будут использовать режим no-cors. Например, для встроенных ресурсов, где запрос инициируется из разметки, если отсутствует атрибут crossorigin, то запрос в большинстве случаев будет выполнен в режиме no-cors — то есть для элементов <link> или <script> (кроме использования с модулями), или <img>, <audio>, <video>, <object>, <embed>, или <iframe>.

Пример

В этой части кода создаётся новый запрос (для взятия файла картинки) через конструктор Request.Request(), затем полученный режим сохраняется в переменной:

js
var myRequest = new Request("flowers.jpg");
var myMode = myRequest.mode; // вернёт "cors" по умолчанию

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

Specification
Fetch
# ref-for-dom-request-mode②

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

Report problems with this compatibility data on GitHub
desktopmobileserver
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
Deno
Node.js
mode
navigate mode

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support
No support
No support

Смотрите также