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

Какие проблемы связанные с CORS встречаются на практике и как их решать?

DOM и браузер

Частые проблемы с CORS: ошибка «No Access-Control-Allow-Origin», проблемы с preflight, credentials с ``, кастомные заголовки. Решают настройкой заголовков на сервере или прокси.**

Частые проблемы и решения

«No Access-Control-Allow-Origin»

Сервер не прислал заголовок для вашего origin.

Решение: настроить Access-Control-Allow-Origin на сервере (конкретный origin или *).

Preflight не проходит

Сложный запрос (PUT, JSON, кастомные заголовки) → браузер шлёт OPTIONS, а сервер его не обрабатывает.

Решение: сервер должен отвечать на OPTIONS с Access-Control-Allow-Methods/Headers и статусом 204.

Credentials с wildcard

При credentials: 'include' нельзя Access-Control-Allow-Origin: *.

Решение: указать конкретный origin + Access-Control-Allow-Credentials: true.

Кастомные заголовки блокируются

Authorization, кастомные заголовки не разрешены.

Решение: добавить их в Access-Control-Allow-Headers.

Чужой API без CORS

Нет доступа к серверу стороннего API.

Решение: прокси (свой backend или dev-прокси).

Работает в Postman, не в браузере

CORS — только в браузере.

Решение: настроить заголовки на сервере (не проблема API как такового).

Общий подход

  • Свой backend → настроить заголовки (middleware cors).
  • Чужой API → прокси.
  • Разработка → dev-прокси (Vite/Webpack).

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

Частые проблемы CORS: «No Access-Control-Allow-Origin» (сервер не разрешил origin), непройденный preflight (сервер не обрабатывает OPTIONS), credentials с * (нужен конкретный origin), заблокированные кастомные заголовки (добавить в Allow-Headers), чужой API без CORS (прокси). Решают настройкой заголовков на сервере (cors) или прокси; в разработке — dev-прокси.

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