К содержанию
CheckcraftСкачать
Практический сценарий

Unexpected token <, <!DOCTYPE is not valid JSON: сервер вернул HTML

Ошибка значит одно: первым символом ответа был <, то есть сервер прислал HTML. Осталось понять, какую страницу и почему.

Checkcraft ·

Поможем с первой проверкой →

Пять частых причин

Неверный адрес: опечатка, лишний или пропущенный /api, и сервер вернул страницу 404. Истекла сессия, и запрос перенаправили на страницу входа. Прокси или балансировщик ответил своей страницей ошибки 502 или 504. Сервер фронтенда отдаёт index.html на любой неизвестный путь, и запрос к API попал к нему, а не к бэкенду. Упало само приложение, и вместо JSON пришла HTML-страница с ошибкой.

Как увидеть, что пришло на самом деле

Выполните запрос с ключом -i: curl покажет код ответа и заголовки, включая Content-Type. Если там text/html, смотрите на код. 404 означает неверный адрес, 401 или перенаправление на страницу входа связаны с авторизацией, 502 и 504 указывают на прокси или упавший сервис.

curl -i https://api.example.com/api/orders/42

Как защитить код и тесты

Проверяйте код ответа и Content-Type до разбора JSON. В автотесте сделайте это отдельными проверками: тогда отчёт скажет, что пришёл 404 text/html, а не что JSON неверный. В Checkcraft это правила на код ответа и заголовок, которые стоят рядом с проверками полей.

const response = await fetch('/api/orders/42');
const type = response.headers.get('content-type') || '';
if (!response.ok || !type.includes('application/json')) {
  const text = await response.text();
  throw new Error(`HTTP ${response.status}, ${type}: ${text.slice(0, 200)}`);
}
const order = await response.json();
Следующий шаг

Повторите это на своём API

Checkcraft — настольная программа: сохраняет проверки ответа API без кода и показывает, что не совпало. Начните с учебного примера, затем подставьте свои обезличенные данные. Free работает на Windows и Linux без ограничения срока.

Скачать FreeКак получить и запустить приложение

Скачивание без регистрации и почты, архив готов за пару минут. Состав бесплатной версии опубликован на странице тарифов.

Документация

Ошибки JSON.parse на MDN

Начните с примера по ссылкам и сопоставьте результат с требованием своей проверки.

Можно спросить человека

Поможем с первой проверкой

Расскажите, что хотите проверить или на каком шаге остановились. Поможем запустить Checkcraft, подобрать пример и разобраться с первым прогоном. Можно написать до скачивания.

Telegram-группа открытая: не публикуйте пароли, токены и конфиденциальные рабочие данные. Для первого вопроса достаточно описания задачи.

Можно написать напрямую support@checkcraft.ru

Без регистрации. Ответим по email. Это обращение в поддержку, а не подписка на рассылку.