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
Спецификации
Specification |
---|
Fetch Standard # http-access-control-allow-origin |
Совместимость с браузерами
BCD tables only load in the browser