Проверяет понимание роли HTTP-метода OPTIONS в предварительных запросах CORS и механизма их обработки браузером.
CORS (Cross-Origin Resource Sharing) — это механизм, который позволяет браузеру безопасно выполнять запросы к ресурсам другого домена. Когда браузер обнаруживает, что запрос не является «простым» (например, используется метод PUT, DELETE или добавляются нестандартные заголовки), он автоматически отправляет предварительный запрос методом OPTIONS. Этот запрос называется preflight и служит для проверки, разрешает ли сервер такой кросс-доменный запрос.
Браузер отправляет OPTIONS на тот же URL, но с заголовками Access-Control-Request-Method и Access-Control-Request-Headers, указывая, какой метод и заголовки планирует использовать. Сервер должен ответить с заголовками Access-Control-Allow-Methods, Access-Control-Allow-Headers и Access-Control-Allow-Origin. Если ответ не содержит нужных заголовков или они не соответствуют запросу, браузер блокирует основной запрос и показывает ошибку в консоли.
// Пример preflight запроса
OPTIONS /api/data HTTP/1.1
Host: api.example.com
Origin: https://frontend.com
Access-Control-Request-Method: PUT
Access-Control-Request-Headers: Content-Type
// Ответ сервера
HTTP/1.1 204 No Content
Access-Control-Allow-Origin: https://frontend.com
Access-Control-Allow-Methods: GET, POST, PUT, DELETE
Access-Control-Allow-Headers: Content-Type
Access-Control-Max-Age: 86400Простые запросы (GET, POST с Content-Type: application/x-www-form-urlencoded, multipart/form-data или text/plain) не вызывают preflight. Однако если вы добавляете кастомные заголовки или используете методы, отличные от GET/POST, браузер всегда отправит OPTIONS. Это важно учитывать при разработке API, так как сервер должен корректно обрабатывать OPTIONS даже для маршрутов, где он не предусмотрен.
Вывод: Понимание связи OPTIONS и CORS необходимо для настройки кросс-доменных запросов и отладки ошибок в браузере. Правильная обработка preflight на сервере — ключ к стабильной работе фронтенда и бэкенда.
Уровень
Рейтинг:
4
Сложность:
4
Навыки
JavaScript
Networks
Ключевые слова
Подпишись на React Developer в телеграм
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию