CORS для API: preflight, куки и заголовки, без которых фронт «молчит»

Same-Origin Policy изолирует документы; CORS — механизм явного разрешения кросс-доменных запросов с контролируемыми заголовками и методами.
Запросы «не простые» (кастомные заголовки, PUT, JSON с особыми типами) вызывают OPTIONS preflight — сервер должен ответить согласованным набором Access-Control-*.
- [Cross-Origin Resource Sharing (CORS) — MDN](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS) — Полный разбор simple и preflight.
---
## Куки и `credentials`
При fetch(..., { credentials: 'include' }) нельзя отвечать Access-Control-Allow-Origin: * — нужен конкретный origin и Access-Control-Allow-Credentials: true.
Разводите публичный API и браузерные BFF-эндпоинты: так проще держать политику CORS узкой.
