Сравни способы обхода 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 не может. Публичные прокси — небезопасны для прода.