Что это значит
Запрос выполнен, тела ответа нет. Заголовки всё ещё могут нести метаданные, например новый ETag.
Типичные причины
- DELETE выполнен успешно
- PUT или PATCH сохранил изменения, не возвращая ресурс
- Ответил preflight-запрос CORS или beacon-эндпоинт
Как исправить
Если вы клиент или посетитель
Не пытайтесь разобрать тело: вызов response.json() на 204 выбрасывает исключение. Проверяйте статус перед чтением.
Если вы владелец сайта или API
Никогда не отправляйте тело с 204. Если клиентам нужен обновлённый ресурс, верните 200 с JSON.
Пример ответа
HTTP/1.1
HTTP/1.1 204 No Content
Date: Tue, 07 Oct 2025 09:30:00 GMT
Server: nginx Спецификация
Частые вопросы
› Почему response.json() падает на 204?
Разбирать нечего. Проверьте response.status === 204 (или длину содержимого) перед вызовом json().
› DELETE должен возвращать 204 или 200?
204, если сообщать нечего; 200, если возвращаете тело, например удалённый элемент или подтверждение.