intermediate
CORS
Понимайте simple requests, preflight, credentials, allowed origins, exposed headers и типовые ошибки конфигурации.
CORS — механизм браузера, позволяющий серверу разрешить cross-origin чтение ответов. Simple requests идут сразу; non-simple делают preflight с проверкой method и headers. Credentials требуют явного отражения origin и несовместимы с wildcard для credentialed reads.
Access-Control-Allow-Origin: https://app.example.com
Access-Control-Allow-Credentials: true
Access-Control-Allow-Headers: Content-Type, X-Request-Id
Preflight OPTIONS должен успешно завершиться до основного запроса. Expose только нужные response headers.
На интервью: preflight failures, отсутствующие exposed headers, credentials и ошибки с wildcard.
Типовые ошибки: Access-Control-Allow-Origin везде открывает private API; ошибки CORS в консоли скрывают реальный ответ сервера.
Компромисс: удобство против контроля — выбирайте механизм под вашу связность и бюджет производительности.
Чеклист:
- Simple vs preflighted requests.
- Конкретный origin с credentials.
- Expose только нужные headers.
- Тестируйте в браузере, не только curl.