Тестер запросов CORS
Отправьте настоящий кросс-доменный запрос из браузера к любому API, чтобы узнать, разрешает ли его CORS. Объясняет, когда нужен preflight, и показывает заголовки.
Что такое Тест CORS?
Тестер отправляет настоящий кросс-доменный запрос из вашего браузера (с выбранными вами методом, Content-Type, пользовательским заголовком и режимом передачи учётных данных) и сообщает, позволяет ли браузер JavaScript прочитать ответ. Перед отправкой он объясняет, «простой» ли запрос или ему нужен предварительный запрос OPTIONS, и почему.
Как пользоваться Тест CORS
- Введите URL API для проверки.
- Выберите метод, при желании Content-Type и пользовательский заголовок, например
Authorization: Bearer x. - Отметьте «Отправлять cookie и учётные данные», если ваше приложение использует credentials: include.
- Прочитайте объяснение про preflight, затем нажмите «Отправить тестовый запрос».
- Если запрос разрешён, изучите статус и заголовки, доступные JavaScript; если заблокирован, посмотрите точную ошибку CORS в консоли браузера.
Когда использовать Тест CORS
Используйте, чтобы проверить, можно ли вызывать публичный API из браузерного приложения, или воспроизвести ошибку CORS с конкретными заголовками. Источник всегда https://algokit.dev, поэтому сервер, разрешающий только ваш собственный домен, корректно покажется заблокированным; для точного совпадения проверяйте со своего сайта. Инструмент не отличает сбои CORS от сетевых и TLS-ошибок: браузер этого не раскрывает.
Как работает Тест CORS
Инструмент вызывает fetch() с mode: "cors" из источника страницы (https://algokit.dev) точно так же, как ваш собственный фронтенд-код. Объяснение про preflight следует стандарту Fetch: методы, кроме GET/HEAD/POST, Content-Type, отличный от form-urlencoded, multipart/form-data или text/plain, или любой пользовательский заголовок вызывают предварительный запрос OPTIONS. Когда браузер блокирует ответ, он выбрасывает общий TypeError и намеренно скрывает причину, поэтому инструмент советует посмотреть консоль.
Распространенные Случаи Использования
- Проверить, отправляет ли сторонний API Access-Control-Allow-Origin, прежде чем встраивать его в SPA.
- Выяснить, какой заголовок в запросе вызывает preflight.
- Проверить, что credentials: include работает (нужен конкретный источник, а не *).
- Узнать, какие заголовки ответа доступны JavaScript через Access-Control-Expose-Headers.
Примечание по Безопасности
Запрос идёт напрямую из вашего браузера на введённый URL; при включённых учётных данных отправляются и ваши cookie для этого сайта.
Часто Задаваемые Вопросы
Почему curl работает, а браузер нет?
CORS применяют только браузеры. curl и серверы его игнорируют, поэтому API может работать из curl и всё же быть нечитаемым со веб-страницы.
Что вызывает preflight?
Метод, отличный от GET, HEAD или POST, непростой Content-Type вроде application/json или любой пользовательский заголовок запроса, например Authorization.
Можно ли использовать Access-Control-Allow-Origin: * с cookie?
Нет. С учётными данными сервер должен вернуть точный источник и отправить Access-Control-Allow-Credentials: true.