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.
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()
, затем полученный режим сохраняется в переменной:
var myRequest = new Request("flowers.jpg");
var myMode = myRequest.mode; // вернёт "cors" по умолчанию
Спецификации
Specification |
---|
Fetch Standard # ref-for-dom-request-mode② |
Совместимость с браузерами
BCD tables only load in the browser