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.