Я делаю вызов AJAX для установки имени пользователя. Если имя пользователя уже было принято, какой код HTTP я должен вернуть?
Какой код ошибки 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.