Как настроить доступ к домену при использовании CORS?
DOM и браузер
Доступ к домену при CORS настраивают заголовком `Access-Control-Allow-Origin`, указывая разрешённый origin (или `` для публичного доступа без credentials).**
Разрешить конкретный домен
Access-Control-Allow-Origin: https://app.comТолько https://app.com сможет читать ответы. Origin = протокол + домен + порт.
Несколько доменов
Заголовок принимает один origin (или *). Для списка доменов сервер проверяет Origin запроса и динамически возвращает совпадающий:
const allowed = ['https://app.com', 'https://admin.app.com'];
const origin = req.headers.origin;
if (allowed.includes(origin)) {
res.header('Access-Control-Allow-Origin', origin);
}Публичный доступ
Access-Control-Allow-Origin: *Разрешает всем — только для публичных API без credentials.
С credentials (cookie)
При Access-Control-Allow-Credentials: true нельзя использовать * — нужен конкретный origin:
Access-Control-Allow-Origin: https://app.com
Access-Control-Allow-Credentials: trueДополнительно
- Разрешить методы:
Access-Control-Allow-Methods. - Разрешить заголовки:
Access-Control-Allow-Headers. - Обработать preflight
OPTIONS.
Коротко для собеседования
Доступ домена задают Access-Control-Allow-Origin: <origin> (конкретный домен) или * (публично, без credentials). Для списка доменов сервер проверяет заголовок Origin и возвращает совпадающий. При credentials: true * запрещён — только конкретный origin.