Access-Control-Allow-Origin

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

Заголовок ответа Access-Control-Allow-Origin показывает, может ли ответ сервера быть доступен коду, отправляющему запрос с данного источника origin.

Тип заголовка Response header
Forbidden header name нет

Синтаксис

Access-Control-Allow-Origin: *
Access-Control-Allow-Origin: <origin>
Access-Control-Allow-Origin: null

Директивы

*

Для запросов без учётных данных. Значение "*" может быть использован как шаблон; значение указывает браузеру разрешить запросы из любых источников. Попытка использовать шаблон с учётными данными приведёт к ошибке.

<origin>

Указывает источник. Может быть указан только один источник.

null

Определяет в качестве источника "null".

Примечание: Не используйте null: "Может показаться, что вернуть Access-Control-Allow-Origin: "null" безопасно, но сериализация Источника любого ресурса, использующего неиерархическую схему (такие как data: или file:), и изолированные документы, определяются как "null". Многие пользовательские агенты предоставляют таким документам доступ к ответу с заголовком Access-Control-Allow-Origin: "null", и любой источник может создать враждебный документ с Источником "null". Поэтому использования заголовка ACAO со значением "null" следует избегать."

Примеры

Ответ, который указывает браузеру разрешить доступ к ресурсу из любого источника:

Access-Control-Allow-Origin: *

Ответ, который указывает браузеру разрешить доступ к ресурсу только из источника https://developer.mozilla.org:

Access-Control-Allow-Origin: https://developer.mozilla.org

Чтобы ограничить Access-Control-Allow-Origin разрешённым набором значений, необходимо реализовать логику на стороне сервера для проверки значения заголовка Origin запроса, сравнить его с разрешённым списком источников, а затем, если значение Origin присутствует в списке, задать значение Access-Control-Allow-Origin, равное значению Origin.

CORS и кеширование

Если сервер послал ответ со значением Access-Control-Allow-Origin, которое содержит явное указание источника (а не шаблонное значение "*"), тогда ответ также должен включать в себя заголовок Vary со значением Origin — чтобы указать браузеру, что ответы с сервера могут отличаться в зависимости от заголовка запроса Origin.

Access-Control-Allow-Origin: https://developer.mozilla.org
Vary: Origin

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

Specification
Fetch
# http-access-control-allow-origin

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

Report problems with this compatibility data on GitHub
desktopmobile
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
Access-Control-Allow-Origin

Legend

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

Full support
Full support

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