PassFront
  1. PassFront
  2. База знаний
  3. DOM и браузер

Как настраивается CORS?

DOM и браузер

CORS настраивается на сервере через заголовки `Access-Control-Allow-, которыми сервер разрешает конкретные origin, методы и заголовки, и обрабатывает preflight OPTIONS`.**

Основные заголовки

Access-Control-Allow-Origin: https://app.com   # разрешённый origin
Access-Control-Allow-Methods: GET, POST, PUT, DELETE
Access-Control-Allow-Headers: Content-Type, Authorization
Access-Control-Allow-Credentials: true          # для cookie/credentials
Access-Control-Max-Age: 86400                    # кеш preflight

Настройка (Express)

Обычно через middleware cors:

const cors = require('cors');
app.use(cors({
  origin: 'https://app.com',        // конкретный origin, не '*' для приватных API
  methods: ['GET', 'POST', 'PUT', 'DELETE'],
  allowedHeaders: ['Content-Type', 'Authorization'],
  credentials: true,
}));

Preflight

Для сложных запросов браузер шлёт OPTIONS; сервер должен ответить нужными заголовками и статусом 204. Middleware cors делает это автоматически.

Правила

  • Credentials + origin: при credentials: true нельзя origin: '*' — только конкретный.
  • Разрешать только доверенные origin (список), не * для приватных API.
  • Настраивать методы и заголовки минимально необходимыми.

Коротко для собеседования

CORS настраивают на сервере заголовками Access-Control-Allow-Origin/Methods/Headers/Credentials и ответом на preflight OPTIONS (обычно middleware cors). При credentials: true origin должен быть конкретным (не *); разрешают только доверенные источники.

Другие вопросы раздела