Что такое CORS? Что такое preflight-запрос (OPTIONS)? Для каких запросов он отправляется, а для каких нет?
Ответ от нейросети
sobes.tech AI
CORS (Cross-Origin Resource Sharing) — механизм безопасности браузера, который контролирует, какие внешние домены могут обращаться к ресурсам на сервере через браузер.
Preflight-запрос (OPTIONS) — это предварительный запрос, который браузер отправляет автоматически перед основным запросом, чтобы проверить, разрешает ли сервер выполнение кросс-доменных запросов с заданными методами и заголовками.
Preflight-запрос отправляется, если основной запрос:
- Использует HTTP-методы, отличные от простых (GET, POST, HEAD), например, PUT, DELETE.
- Использует нестандартные заголовки (например,
Content-Type: application/jsonвместоapplication/x-www-form-urlencoded). - Имеет определённые типы контента, отличные от простых.
Если запрос простой (simple request), например, GET с обычными заголовками, preflight не отправляется.
Пример: при отправке POST с Content-Type: application/json браузер сначала отправит OPTIONS-запрос, чтобы проверить разрешения, и только после успешного ответа выполнит основной POST.