Причина: отсутствует заголовок CORS «Access-Control-Allow-Origin»
Причина
Причина: отсутствует заголовок CORS «Access-Control-Allow-Origin»
Почему это произошло?
В ответе на CORS-запрос отсутствует заголовок Access-Control-Allow-Origin
, используемый для проверки, может ли ресурс быть доступен для контента на текущем домене.
Если у вас есть доступ к серверу, то добавьте домен запрашивающего сайта в список разрешённых доменов, добавив его в значение заголовка Access-Control-Allow-Origin
.
Например, для предоставления сайту https://amazing.site
доступа к ресурсам с использованием CORS, заголовок должен выглядеть так:
Access-Control-Allow-Origin: https://amazing.site
Также вы можете разрешить доступ любому сайту, используя подстановку *
. Используйте этот способ только для публичных API. В закрытых API *
не должна использоваться, вместо этого должен быть установлен определённый домен или домены. При этом подстановка работает только для запросов с атрибутом crossorigin
со значением anonymous
.
Access-Control-Allow-Origin: *
Предупреждение: Внимание: Использование * для доступа к закрытым API — плохая идея по очевидным причинам.
Чтобы разрешить любому сайту делать CORS-запросы без использования подстановки *
(например, для включения авторизационных данных), ваш сервер должен считывать значение заголовка Origin
из запроса и использовать это значение, чтобы задать Access-Control-Allow-Origin
, а также выставить заголовок Vary: Origin
, чтобы обозначить динамическую установку заголовка в зависимости от источника.
Конкретная директива для установки заголовков зависит от вашего сервера. Так в Apache нужно добавить следующую строку в конфигурацию сервера (в соответствующих разделах <Directory>
, <Location>
, <Files>
или <VirtualHost>
). Конфигурация обычно находится в файле с расширением .conf
(стандартные названия: httpd.conf
, apache.conf
), либо в файле .htaccess
.
Header set Access-Control-Allow-Origin 'origin-list'
В Nginx для установки этого заголовка используется команда:
add_header 'Access-Control-Allow-Origin' 'origin-list'
Смотрите также
- Ошибки CORS
- Глоссарий: CORS
- Введение в CORS