Какой код ошибки HTTP для возврата уже выдан?

Я делаю вызов AJAX для установки имени пользователя. Если имя пользователя уже было принято, какой код HTTP я должен вернуть?

Ответ 1

вы можете использовать 409 Conflict.otherwise 200 с сообщением об ошибке.

Ответ 2

Я бы выбрал 422 Unprocessable Entity. Многие разработчики rails используют это для всех ошибок проверки.

И да, совершенно правильно оценить состояние ошибки и отобразить сообщение об ошибке с помощью javascript. Это особенно полезно, если вы используете те же действия для API. Затем ваши запросы ajax получают доступ к тому же API, который вы могли бы предоставить другим разработчикам.

Ответ 3

Здесь нет правила, это зависит от вас. Однако, как сказал @rationalboss, имеет смысл вернуть 200 с сообщением, поскольку запрос HTTP преуспел, ошибка не связана с запросом.

400 ошибок означают, что сам запрос был некорректным, как неправильный глагол или отсутствующие параметры.

Здесь речь идет о интерпретации, как от клиентов программного обеспечения, так и от людей, и, возможно, лучше избегать ошибок, если HTTP-ошибка отсутствует.

Ответ 4

Нет кода HTTP для уже принятого имени. См. Список кодов состояния HTTP.

Если вы используете вызовы AJAX для установки имени пользователя, почему бы просто не показать ошибку в HTML? Это более удобно, так как ваши посетители узнают, что означает фактическая ошибка, вместо того, чтобы видеть какой-то код 4XX.