【发布时间】:2026-02-16 02:35:01
【问题描述】:
我正在执行 AJAX 调用来设置用户名。如果用户名已经被占用,我应该返回什么 HTTP 代码?
【问题讨论】:
标签: http error-code
我正在执行 AJAX 调用来设置用户名。如果用户名已经被占用,我应该返回什么 HTTP 代码?
【问题讨论】:
标签: http error-code
您可以使用 409 冲突。
表示由于当前状态冲突,无法处理请求。
【讨论】:
我会选择 422 Unprocessable Entity 。许多 Rails 开发人员将其用于所有验证错误。
是的,评估错误状态并使用 javascript 呈现错误消息是完全合适的。如果您对 API 使用相同的操作,这将特别有用。然后,您的 ajax 请求将访问您将向其他开发人员公开的相同 API。
【讨论】:
这里没有规则,由你决定。但是,正如@rationalboss所说,由于HTTP请求成功,因此返回200消息是有意义的,该错误与请求无关。
400 错误表示请求本身在某些方面不正确,例如动词错误或缺少参数。
这里的问题是关于软件客户端和人类的解释,当没有 HTTP 错误时,最好远离错误代码。
【讨论】:
名称没有 HTTP 代码。请参阅List of HTTP Status Codes。
如果您使用 AJAX 调用来设置用户名,为什么不在 HTML 中显示错误?这对用户更友好,因为您的访问者会知道实际错误的含义,而不是看到一些 4XX 代码。
【讨论】:
success 处理程序应该可以帮助您,只需检查 API 中的示例。