> Что будет если отправить запрос с пустым JSON объектом (JavaScript)

Уровень: senior · Роль: frontend · Категория: Технические вопросы

Компании: Сбер

Стек: JavaScript

> Пример ответа

Отправка запроса с пустым JSON объектом {} - это корректное действие, которое не вызовет ошибку на уровне протокола HTTP или парсинга JSON. Однако поведение зависит от бэкенда и вашей реализации на фронтенде.

На фронтенде (JavaScript):
При использовании fetch или axios пустой объект будет сериализован в строку "{}" и отправлен в теле запроса. Например:

JAVASCRIPT
fetch('/api/data', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({}) // -> "{}"
});

Сервер получит пустой объект, что может быть интерпретировано по-разному:

  • Если бэкенд ожидает обязательные поля, он может вернуть ошибку валидации (например, 400 Bad Request).

  • Если поля не обязательны, запрос может пройти успешно, и сервер создаст запись с дефолтными значениями или ничего не изменит.

Потенциальные проблемы:

  • Отсутствие Content-Type: Если не указать заголовок Content-Type: application/json, некоторые серверы могут не распознать тело как JSON и вернуть ошибку.

  • Пустой объект vs пустое тело: {} - это не то же самое, что отсутствие тела. Пустое тело (например, body: null) может привести к другому поведению.

  • Кэширование: GET-запросы с пустым телом обычно игнорируются, но для POST/PUT это важно.

Рекомендация:
Всегда проверяйте документацию API. Если бэкенд ожидает хотя бы одно поле, лучше отправлять минимальный валидный объект, например { "action": "ping" }, чтобы избежать неоднозначности. На фронтенде стоит добавить обработку ошибок:

JAVASCRIPT
fetch('/api/data', { method: 'POST', body: JSON.stringify({}) })
.then(res => {
if (!res.ok) throw new Error('Пустой объект не принят');
})
.catch(err => console.warn(err));

> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?

Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью