Выбор ответа Middle Заголовки и cookies спрашивают часто обновлено

Кто проверяет CORS

Вопрос

Фронтенд получает ошибку CORS, а тот же запрос из Postman проходит. Почему?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: CORS проверяет браузер по Access-Control-Allow- в ответе, Postman их не смотрит. CORS это защита в браузере: сервер отвечает, браузер смотрит на Access-Control-Allow-Origin и прочие заголовки и решает, отдать ли ответ скрипту.

Варианты ответа

  1. Postman отправляет запрос через свой облачный прокси, и сервер видит другой адрес
  2. В Postman режим CORS включён по умолчанию, и он сам подставляет разрешающие заголовки
  3. CORS проверяет сервер по IP клиента, а Postman подменяет IP на доверенный
  4. CORS проверяет браузер по Access-Control-Allow-* в ответе, Postman их не смотритправильный ответ

Разбор

CORS это защита в браузере: сервер отвечает, браузер смотрит на Access-Control-Allow-Origin и прочие заголовки и решает, отдать ли ответ скрипту. Postman, curl и бэкенды CORS не применяют. Поэтому «в Postman работает» не доказывает, что фронтенд заработает: проверять CORS нужно из браузера с реальным Origin.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.