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

Сравни способы обхода CORS и объясни, когда выбирать каждый вариант.

DOM и браузер

CORS обходят настройкой заголовков на сервере, собственным прокси или dev-прокси в разработке. Клиент не может отключить CORS — это защита браузера.

Способы

1. CORS-заголовки на сервере (правильный способ)

Если вы контролируете backend:

Access-Control-Allow-Origin: https://app.com
Access-Control-Allow-Methods: GET, POST, PUT, DELETE
Access-Control-Allow-Headers: Content-Type, Authorization
Access-Control-Allow-Credentials: true

Подходит всегда, когда доступ к серверу есть.

2. Прокси-сервер

Свой backend обращается к внешнему API, а фронт ходит на свой origin — CORS не применяется (проверка только браузером). Для чужих API без нужных заголовков.

3. Dev-прокси (только разработка)

// vite.config.js
server: { proxy: { '/api': 'http://localhost:4000' } }

4. Same-origin размещение

Фронт и API на одном origin — CORS не возникает.

Чего избегать

Публичные «CORS-anywhere» и отключение веб-безопасности браузера — только для локальных экспериментов, не для прода.

Как выбирать

  • Свой backend → заголовки.
  • Чужой API → свой прокси.
  • Разработка → dev-прокси.

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

CORS обходят: настройкой Access-Control-Allow-* на своём сервере, собственным прокси для чужого API, dev-прокси в разработке или размещением на одном origin. Клиент обойти CORS не может. Публичные прокси — небезопасны для прода.

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