Выбор ответа Middle CORS спрашивают часто обновлено
Звёздочка и куки в CORS
Вопрос
Фронт шлёт fetch(url, { credentials: 'include' }), сервер отвечает Access-Control-Allow-Origin: * и Access-Control-Allow-Credentials: true. Что будет?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Браузер заблокирует ответ: с credentials нужен конкретный origin, а не. Спецификация запрещает в Access-Control-Allow-Origin для запросов с credentials: сервер должен вернуть точный origin (и обычно Vary: Origin).
Варианты ответа
- Всё сработает: звёздочка разрешает любой origin, в том числе с куками
- Куки отправятся, а заголовок
Allow-Credentialsбраузер просто проигнорирует - Сработает только в Chrome, Firefox и Safari такое запрещают
- Браузер заблокирует ответ: с credentials нужен конкретный origin, а не
*правильный ответ
Разбор
Спецификация запрещает * в Access-Control-Allow-Origin для запросов с credentials: сервер должен вернуть точный origin (и обычно Vary: Origin). Поэтому первый вариант неверен. Браузер не игнорирует Allow-Credentials, он проверяет его вместе с origin. Правило одинаково во всех современных браузерах.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.