diff --git a/files/ru/web/http/cors/errors/corsmissingalloworigin/index.md b/files/ru/web/http/cors/errors/corsmissingalloworigin/index.md index e5d2ea925f25ff..0d76bebec9d2f0 100644 --- a/files/ru/web/http/cors/errors/corsmissingalloworigin/index.md +++ b/files/ru/web/http/cors/errors/corsmissingalloworigin/index.md @@ -1,46 +1,54 @@ --- title: "Причина: отсутствует заголовок CORS «Access-Control-Allow-Origin»" slug: Web/HTTP/CORS/Errors/CORSMissingAllowOrigin +l10n: + sourceCommit: 592f6ec42e54981b6573b58ec0343c9aa8cbbda8 --- -## [Причина](/ru/docs/) +{{HTTPSidebar}} -``` +## Причина + +```plain Причина: отсутствует заголовок CORS «Access-Control-Allow-Origin» ``` -## [Почему это произошло?](/ru/docs/) +## Почему это произошло? -В ответе на {{Glossary("CORS")}}-запрос отсутствует заголовок {{HTTPHeader("Access-Control-Allow-Origin")}}, используемый для проверки, может ли ресурс быть доступен для контента на текущем домене. +В ответе на {{Glossary("CORS")}}-запрос отсутствует обязательный заголовок {{HTTPHeader("Access-Control-Allow-Origin")}}, используемый для проверки, может ли ресурс быть доступен для контента с текущего домена. -Если у вас есть доступ к серверу, то добавьте домен запрашивающего сайта в список разрешённых доменов, добавив его в значение заголовка `Access-Control-Allow-Origin`. +При наличии доступа к серверу, можно внести домен запрашивающего сайта в список разрешённых, добавив его в значение заголовка `Access-Control-Allow-Origin`. -Например, для предоставления сайту `https://amazing.site` доступа к ресурсам с использованием CORS, заголовок должен выглядеть так: +Например, для предоставления сайту `https://example.com` доступа к ресурсам с использованием CORS, заголовок должен выглядеть так: -``` -Access-Control-Allow-Origin: https://amazing.site +```http +Access-Control-Allow-Origin: https://example.com ``` -Также вы можете разрешить доступ любому сайту, используя подстановку `*`. Используйте этот способ только для публичных API. В закрытых API `*` не должна использоваться, вместо этого должен быть установлен определённый домен или домены. При этом подстановка работает только для запросов с атрибутом [`crossorigin`](/ru/docs/Web/HTML/Global_attributes#crossorigin) со значением `anonymous`. +Также можно разрешить доступ к сайту для любого другого сайта, используя подстановку `*`. Этот способ подходит только для публичных API. В закрытых API `*` не должна использоваться, вместо этого должен быть установлен конкретный домен или домены. При этом подстановка работает только для запросов с атрибутом [`crossorigin`](/ru/docs/Web/HTML/Attributes/crossorigin) со значением `anonymous`, это предотвращает отправку в запросах учётных данных, таких как файлы cookie. -``` +```http Access-Control-Allow-Origin: * ``` -> **Предупреждение:** **Внимание:** Использование \* для доступа к закрытым API — плохая идея по очевидным причинам. +> **Предупреждение:** Использование подстановки `*` для разрешения всем сайтам доступа к закрытым API — плохая идея по очевидным причинам. -Чтобы разрешить любому сайту делать CORS-запросы _без_ использования подстановки `*` (например, для включения авторизационных данных), ваш сервер должен считывать значение заголовка `Origin` из запроса и использовать это значение, чтобы задать `Access-Control-Allow-Origin`, а также выставить заголовок `Vary: Origin`, чтобы обозначить динамическую установку заголовка в зависимости от источника. +Чтобы разрешить любому сайту делать CORS-запросы _без_ использования подстановки `*` (например, для включения авторизационных данных), сервер должен считывать значение заголовка `Origin` из запроса и использовать это значение, чтобы задать `Access-Control-Allow-Origin`, а также уставить заголовок `Vary: Origin`, чтобы обозначить динамическую установку заголовка в зависимости от источника. -Конкретная директива для установки заголовков зависит от вашего сервера. Так в Apache нужно добавить следующую строку в конфигурацию сервера (в соответствующих разделах ``, ``, `` или ``). Конфигурация обычно находится в файле с расширением `.conf` (стандартные названия: `httpd.conf`, `apache.conf`), либо в файле `.htaccess`. +## Примеры для распространенных веб-серверов -``` -Header set Access-Control-Allow-Origin 'origin-list' -``` +Конкретная директива для установки заголовков зависит от используемого сервера. -В Nginx для установки этого заголовка используется команда: +В **Apache** ([документация](https://httpd.apache.org/docs/2.4/mod/mod_headers.html#header)) нужно добавить следующую строку в конфигурацию сервера (в соответствующих разделах ``, ``, `` или ``). Конфигурация обычно находится в файле с расширением `.conf` (стандартные названия: `httpd.conf`, `apache.conf`), либо в файле `.htaccess`: +```apacheconf +Header set Access-Control-Allow-Origin 'https://example.com' ``` -add_header 'Access-Control-Allow-Origin' 'origin-list' + +В **Nginx** ([документация](https://nginx.org/ru/docs/http/ngx_http_headers_module.html#add_header)) для установки этого заголовка используется команда: + +```nginx +add_header 'Access-Control-Allow-Origin' 'https://example.com' always; ``` ## Смотрите также