Что такое CORS? Как он работает? В чём разница между простыми запросами (GET, POST) и предварительными запросами (preflight OPTIONS)? На что смотрит CORS при отправке запроса?
Ответ от нейросети
sobes.tech AI
CORS (Cross-Origin Resource Sharing) — это механизм безопасности браузера, который ограничивает выполнение веб-страницами запросов к ресурсам с другого домена, отличного от домена, с которого загружена страница.
Как работает CORS:
Когда веб-страница пытается сделать запрос к другому домену, браузер проверяет, разрешает ли сервер этого домена такие запросы. Сервер должен в ответе содержать специальные заголовки (например, Access-Control-Allow-Origin), которые указывают, какие источники (домены) могут обращаться к его ресурсам.
Простые запросы и предварительные (preflight) запросы:
- Простые запросы — это запросы с методами GET, POST или HEAD и с определённым набором заголовков и типов контента (например,
application/x-www-form-urlencoded). Для таких запросов браузер сразу отправляет основной запрос и проверяет ответ. - Предварительные запросы (preflight OPTIONS) — это запросы с методом OPTIONS, которые браузер отправляет перед основным запросом, если он не является простым (например, используется метод PUT, DELETE, или нестандартные заголовки). Цель — проверить, разрешает ли сервер такой запрос.
На что смотрит CORS при отправке запроса:
- Заголовок
Origin— указывает источник запроса. - Сервер в ответе должен вернуть
Access-Control-Allow-Originс разрешённым источником или*. - Для preflight запросов сервер также должен вернуть
Access-Control-Allow-Methods(разрешённые методы) иAccess-Control-Allow-Headers(разрешённые заголовки).
Если эти условия не выполняются, браузер блокирует доступ к ответу из JavaScript, обеспечивая безопасность.