Что такое CORS?

CORS (совместное использование ресурсов между источниками) — это механизм, с помощью которого сервер сообщает браузерам, каким другим сайтам разрешено читать его ответы. По умолчанию JavaScript на https://app.example.com может отправить запрос на https://api.example.com, но браузер скроет ответ, если API не вернёт заголовок Access-Control-Allow-Origin со значением, совпадающим с источником страницы, или *.

Для всех запросов, кроме простого GET или простого POST с данными формы, например PUT, DELETE или запроса с телом в формате JSON и заголовком Authorization, браузер сначала запрашивает разрешение с помощью предварительного запроса (preflight): запроса OPTIONS со списком метода и заголовков, которые он собирается использовать. Фактический запрос будет отправлен, только если сервер разрешит их.

Описание инструмента

Укажите URL, к которому обращается ваша страница, источник страницы, метод и пользовательские заголовки запроса, а затем нажмите «Проверить CORS». Наш сервер отправляет те же запросы, что и браузер, и проверяет ответы по правилам браузера:

  • Предварительный запрос (OPTIONS) с заголовками Access-Control-Request-Method и Access-Control-Request-Headers
  • Запрос GET с заголовком Origin для проверки заголовков CORS в обычном ответе

Проверка показывает, какие правила выполняются, а какие нет, а в таблице перечислены все заголовки CORS из обоих ответов. Выбранный метод никогда не отправляется, поэтому проверка конечной точки DELETE ничего не удаляет.

Инструмент также сообщает, будут ли работать запросы с cookies. Для этого вместо * нужно указать точный источник и добавить Access-Control-Allow-Credentials: true.

ИИ-ассистенты, подключённые к MCP-серверу Rapid Tool Set, могут выполнить такую же проверку с помощью cors_checker.

Советы

  • Ошибки CORS возникают в браузере, а не на сервере. Запрос, который работает в curl или Postman, всё равно может быть заблокирован в браузере, поскольку эти инструменты не применяют правила CORS.
  • Если на предварительный запрос приходит ответ 401 или 404, сервер обрабатывает OPTIONS как обычный запрос. Разрешите предварительные запросы до выполнения проверок авторизации.
  • Если сервер выбирает разрешённый источник для каждого запроса, он также должен отправлять Vary: Origin, иначе CDN может передать одному сайту ответ, предназначенный для другого.