ESC

Настройка CORS

Access-Control-Allow-Origin
Access-Control-Allow-Methods
Access-Control-Allow-Headers
Access-Control-Expose-Headers
Access-Control-Max-Age
секунд
Access-Control-Allow-Credentials
Нельзя использовать с подстановочным знаком (*) для origin

Сгенерированный результат

Настройте параметры для генерации CORS-заголовков...
Настройте параметры для генерации CORS-заголовков...
Настройте параметры для генерации CORS-заголовков...
Настройте параметры для генерации CORS-заголовков...
Настройте параметры для генерации CORS-заголовков...
Вся обработка происходит в вашем браузере. Данные не отправляются на сервер.

Примеры использования

Открытый публичный API

Разрешить любому источнику выполнять GET и POST запросы. Подходит для публичных API, обслуживающих любые сайты.

Внутреннее приложение с авторизацией

Ограничить доступ конкретными источниками с поддержкой учётных данных. Идеально для внутренних приложений с аутентификацией.

API только для чтения

Конфигурация API только для чтения, разрешающая GET-запросы с любого источника и предоставляющая заголовки пагинации.

Возможности

Полная настройка

Настройте все CORS-заголовки: origin, methods, headers, credentials и max-age

Поддержка нескольких серверов

Готовые фрагменты конфигурации для Nginx, Apache, Node.js/Express и PHP

Пользовательские источники и заголовки

Добавляйте несколько источников и заголовков через удобный интерфейс тегов

Конфиденциальность

Вся обработка происходит локально в вашем браузере, данные не отправляются на серверы

Как использовать?

1

Настройте параметры

Укажите разрешённые источники, HTTP-методы, заголовки, max-age и параметры credentials.

2

Выберите формат вывода

Переключайтесь между форматами HTTP-заголовков, Nginx, Apache, Node.js или PHP.

3

Скопируйте и разверните

Скопируйте сгенерированную конфигурацию и добавьте её в настройки вашего сервера.

Часто задаваемые вопросы

Спецификация CORS это запрещает. Когда задействованы учётные данные (куки, заголовки авторизации), сервер должен возвращать точный запрашивающий источник, а не подстановочный знак. Это предотвращает утечку учётных данных на произвольные домены.

Любой запрос с использованием PUT, DELETE, PATCH или пользовательских заголовков вызывает предварительный OPTIONS-запрос. Простые GET/POST со стандартными заголовками его пропускают. Предварительный запрос проверяет, действительно ли сервер разрешает операцию.

Нет. Всё работает в вашем браузере. Ничего не отправляется на сервер и нигде не сохраняется.

Что такое CORS и зачем он нужен?

CORS (Cross-Origin Resource Sharing) — это механизм безопасности браузера, контролирующий, какие домены могут отправлять запросы к вашему API. По умолчанию браузеры блокируют кросс-доменные запросы — скрипт на example.com не может обратиться к api.otherdomain.com. CORS-заголовки сообщают браузеру: «всё в порядке, я доверяю этому источнику». Без правильной настройки CORS ваш фронтенд получит непрозрачные ошибки «blocked by CORS policy», которые печально известны своей бесполезностью.

Почему настройка CORS вызывает трудности

CORS включает множество заголовков, которые взаимодействуют неочевидным образом. Allow-Origin может быть конкретным доменом или *, но не оба варианта одновременно с credentials. Allow-Methods и Allow-Headers должны совпадать с тем, что клиент отправляет в предварительном запросе. Max-Age контролирует время кэширования результатов preflight. Пропустите любой из них — и ваши API-вызовы завершатся загадочными ошибками. Этот инструмент позволяет настроить всё визуально и выдаёт готовые конфигурации для Nginx, Apache, Node.js и PHP.

Типичные ошибки CORS

Ошибка номер один — установить Allow-Origin в *, одновременно включив credentials: браузер это отклонит. Вторая — забыть обработать предварительные OPTIONS-запросы на сервере, из-за чего PUT/DELETE/PATCH перестают работать. Третья — не раскрыть пользовательские заголовки ответа через Expose-Headers, делая их невидимыми для JavaScript. Этот инструмент предупреждает о таких проблемах при настройке.

Предварительные запросы (Preflight)

Перед отправкой «сложного» запроса (всё, что выходит за рамки простых GET/POST со стандартными заголовками) браузер отправляет OPTIONS-запрос: «это разрешено?» Сервер должен ответить соответствующими Allow-заголовками. Если нет — фактический запрос вообще не отправится. Заголовок Max-Age указывает браузеру, как долго кэшировать ответ preflight, чтобы не спрашивать заново при каждом запросе.

Конфиденциальность

Ваша конфигурация CORS не покидает ваш браузер. Никаких обращений к серверу, никакого хранения, никакого отслеживания. Инструмент полностью работает на JavaScript.

Безопасность и конфиденциальность

Безопасность ваших данных — наш приоритет

Локальная обработка

Вся обработка происходит в вашем браузере

Без передачи данных

Ваши данные не отправляются на наши серверы

Без хранения данных

Данные не хранятся и не передаются

SSL-шифрование

SSL-шифрование для безопасного соединения