Access-Control-Allow-Origin

Этот перевод не завершён. Пожалуйста, помогите перевести эту статью с английского

Заголовок ответа 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

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

Спецификации Статус Комментарий
Fetch
Определение 'Access-Control-Allow-Origin' в этой спецификации.
Живой стандарт Начальное определение.

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

Update compatibility data on GitHub
КомпьютерыМобильные
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome для AndroidFirefox для AndroidOpera для AndroidSafari on iOSSamsung Internet
Access-Control-Allow-OriginChrome Полная поддержка 4Edge Полная поддержка 12Firefox Полная поддержка 3.5IE Полная поддержка 10Opera Полная поддержка 12Safari Полная поддержка 4WebView Android Полная поддержка 2Chrome Android Полная поддержка ДаFirefox Android Полная поддержка 4Opera Android Полная поддержка 12Safari iOS Полная поддержка 3.2Samsung Internet Android Полная поддержка Да

Легенда

Полная поддержка  
Полная поддержка

См. также