Сообщество RSS DEV
Подписаться
CORS чуть не сломал меня, но Preflight спас день
Автор изначально настроил систему frontend-backend с использованием S3 для frontend, Apollo GraphQL для backend и API Gateway посередине. Они столкнулись с ошибками CORS (общий доступ к ресурсам между источниками), которые не позволяли запросам frontend достигать backend. Браузер блокировал запросы из-за отсутствия доверия и протоколов безопасности. CORS не является ошибкой, а встроенной функцией безопасности, которая ограничивает запросы между источниками. Браузер отправляет запрос OPTIONS для предварительных проверок перед фактическими запросами. Если сервер или API Gateway не отвечают правильно во время предварительных проверок, браузер блокирует запрос. Решение заключалось в правильном обработке запросов OPTIONS в API Gateway. Backend затем явно разрешал frontend-домен через переменные среды. Отладка проблем с CORS требует проверки предварительного запроса во вкладке Network. Правильная обработка предварительных проверок и разрешения домена backend решила проблемы с CORS.