Правильные коды состояния для ответов JSON на вызовы Ajax?

Мой проект возвращает JSON-запросы Ajax из браузера. Мне интересно, каков правильный код состояния для отправки ответов на недействительные (но успешно обработанные) отправленные данные.

Например, jQuery имеет следующие два конкретных обратных вызова при выполнении запросов Ajax:

успех : Срабатывает, когда вместе с ответом доставляется код состояния 200 / 2xx.

ошибка : срабатывает, когда 4xx, 5xx и т. Д., коды состояния возвращаются с ответом.

Если пользователь пытается создать новый объект «Человек», я отправляю обратно JSON-представление вновь созданного объекта в случае успеха, тем самым предоставляя javascript доступ к необходимым уникальным идентификаторам для нового объекта и т. Д. Это, конечно, , отправляется с кодом состояния 200.

Если пользователь отправляет искаженные или недопустимые данные (например, недопустимое / неполное поле «имя»), я хотел бы отправить обратно сообщения об ошибках проверки через JSON. (Я не понимаю, почему это было бы плохо).

Мой вопрос: при этом должен ли я отправлять код состояния 200 , потому что я успешно обработал их недопустимые данные? Поэтому я бы использовал обратный вызов jQuery success , но просто проверял наличие ошибок ...

Или , следует ли мне использовать код состояния 4xx , возможно, «Плохой запрос», потому что данные, которые они отправили мне, недействительны? (и, таким образом, используйте обратный вызов error для выполнения необходимых уведомлений на стороне клиента).

28
задан anonymous coward 16 February 2011 в 19:52
поделиться