Request.mode
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 протокола (en-US). В объекте ответаResponseдоступен ограниченный набор заголовков, но тело доступно для чтения.navigate— Режим, поддерживающий навигацию. Значениеnavigateпредназначено только для использования в HTML навигации. Запрос в этом режиме создаётся только во время навигации между страницами.
Default mode
Запрос может быть создан разными способами и режим запроса зависит от конкретных средств, с помощью которых он был инициирован.
Например, когда объект Request создаётся с помощью конструктора Request.Request (en-US), свойство mode этого Request будет иметь значение cors.
Однако, запросы созданные не конструктором Request.Request (en-US), будут использовать режим no-cors. Например, для встроенных ресурсов, где запрос инициируется из разметки, если отсутствует атрибут crossorigin, то запрос в большинстве случаев будет выполнен в режиме no-cors — то есть для элементов <link> или <script> (кроме использования с модулями), или <img>, <audio>, <video>, <object> (en-US), <embed>, или <iframe> (en-US).
Пример
В этой части кода создаётся новый запрос (для взятия файла картинки) через конструктор Request.Request() (en-US), затем полученный режим сохраняется в переменной:
js
var myRequest = new Request('flowers.jpg');
var myMode = myRequest.mode; // вернёт "cors" по умолчанию
Спецификации
| Specification |
|---|
| Fetch Standard # ref-for-dom-request-mode② |
Browser compatibility
BCD tables only load in the browser