Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про JavaScript: CORS, preflight, OPTIONS, HTTP, cross-origin

Что такое preflight-запрос и при каких условиях браузер его отправляет?

Проверяет понимание механизма CORS и условий, при которых браузер отправляет предварительный OPTIONS-запрос.

Короткий ответ

Preflight-запрос — это предварительный HTTP-запрос методом OPTIONS, который браузер отправляет перед основным запросом, если он не является простым. Он нужен, чтобы сервер подтвердил разрешение на кросс-доменный запрос. Браузер отправляет его, если используется нестандартный метод (например, PUT, DELETE), или если заголовки выходят за рамки простых (например, Authorization).

Длинный ответ

Что такое preflight-запрос?

Preflight-запрос — это механизм безопасности браузера, реализованный в рамках политики CORS (Cross-Origin Resource Sharing). Когда веб-страница пытается отправить HTTP-запрос на другой домен, браузер может сначала отправить предварительный запрос методом OPTIONS, чтобы узнать, разрешает ли сервер такой кросс-доменный запрос. Это защищает сервер от неожиданных запросов, которые могут быть опасными.

Когда браузер отправляет preflight?

Preflight-запрос отправляется, если основной запрос не является «простым». Простым считается запрос, который удовлетворяет всем условиям:

  • Метод: GET, HEAD или POST.
  • Заголовки: только Accept, Accept-Language, Content-Language, Content-Type (со значением application/x-www-form-urlencoded, multipart/form-data или text/plain).
  • Не используются события ReadableStream или другие сложные особенности.

Если запрос использует другой метод (например, PUT, DELETE, PATCH) или содержит нестандартные заголовки (например, Authorization, X-Custom-Header), браузер автоматически отправляет preflight.

Пример preflight-запроса

Предположим, фронтенд на http://example.com хочет отправить DELETE-запрос на http://api.example.com/resource. Браузер сначала отправит OPTIONS-запрос:

OPTIONS /resource HTTP/1.1
Host: api.example.com
Origin: http://example.com
Access-Control-Request-Method: DELETE
Access-Control-Request-Headers: Authorization

Сервер должен ответить с заголовками, разрешающими запрос:

HTTP/1.1 204 No Content
Access-Control-Allow-Origin: http://example.com
Access-Control-Allow-Methods: DELETE
Access-Control-Allow-Headers: Authorization

После этого браузер отправит основной DELETE-запрос.

Вывод

Preflight-запросы — это важная часть безопасности веб-приложений, предотвращающая неавторизованные кросс-доменные запросы. Их нужно учитывать при разработке API, чтобы сервер корректно обрабатывал OPTIONS-запросы и возвращал правильные CORS-заголовки. Это особенно актуально для REST API, которые используются с фронтендом на другом домене.

Frontend developer

tech
tech
tech
tech
tech
tech
tech
tech
tech

Ментор по Frontend

Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства

Записаться на консультацию

Уровень

  • Рейтинг:

    4

  • Сложность:

    5

Навыки

  • JavaScript

    JavaScript

  • Networks

Ключевые слова

#CORS

#preflight

#OPTIONS

#HTTP

#cross-origin

Подпишись на React Developer в телеграм

Frontend developer

tech
tech
tech
tech
tech
tech
tech
tech
tech

Ментор по Frontend

Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства

Записаться на консультацию