Проверяет понимание предварительного запроса CORS (preflight request) и его роли в безопасности браузера.
Когда браузер выполняет кросс-доменный запрос (например, с сайта на другом порту или домене), он может сначала отправить запрос методом OPTIONS. Этот запрос называется preflight. Он нужен, чтобы сервер подтвердил, что разрешает такой запрос, и указал допустимые методы и заголовки.
Preflight отправляется не для всех запросов. Если запрос является «простым» (например, GET с простыми заголовками), браузер отправляет его напрямую. Но если используются кастомные заголовки, методы PUT/DELETE или Content-Type не из стандартного списка, браузер сначала делает OPTIONS.
// Клиентский код (JavaScript)
fetch('https://api.example.com/data', {
method: 'GET',
headers: {
'X-Custom-Header': 'value'
}
});
// Сервер должен ответить на OPTIONS:
// Access-Control-Allow-Origin: *
// Access-Control-Allow-Methods: GET, POST, OPTIONS
// Access-Control-Allow-Headers: X-Custom-HeaderОсновная цель — защита сервера от нежелательных запросов с других доменов. Браузер не даёт сайту отправлять запросы на чужой сервер без явного разрешения. Preflight позволяет серверу явно указать, какие запросы он принимает.
Понимание preflight важно для настройки CORS на сервере и отладки проблем с кросс-доменными запросами. Если вы разрабатываете API, обязательно настройте обработку OPTIONS, чтобы клиенты могли корректно работать.
Уровень
Рейтинг:
4
Сложность:
4
Навыки
JavaScript
Networks
Ключевые слова
Подпишись на Node.js Developer в телеграм