26

我正在做一个 AJAX 调用来设置用户名。如果用户名已被占用,我应该返回什么 HTTP 代码?

4

4 回答 4

35

您可以使用 409 冲突。

表示由于当前状态存在冲突,无法处理请求。

于 2014-06-06T10:10:09.670 回答
11

我会选择 422 Unprocessable Entity 。许多 Rails 开发人员将其用于所有验证错误。

是的,评估错误状态并使用 javascript 呈现错误消息是完全合适的。如果您对 API 使用相同的操作,这将特别有用。然后,您的 ajax 请求将访问您将向其他开发人员公开的相同 API。

于 2012-09-30T01:43:40.873 回答
0

这里没有规则,由你决定。但是,正如@rationalboss所说,由于HTTP请求成功,返回200消息是有意义的,该错误与请求无关。

400 错误意味着请求本身在某些方面不正确,例如错误的动词或缺少参数。

这里的问题是关于软件客户端和人类的解释,当没有 HTTP 错误时,最好远离错误代码。

于 2015-07-03T16:05:26.790 回答
-3

名称没有 HTTP 代码。请参阅HTTP 状态代码列表

如果您使用 AJAX 调用来设置用户名,为什么不在 HTML 中显示错误?这对用户更友好,因为您的访问者会知道实际错误的含义,而不是看到一些 4XX 代码。

于 2012-09-29T23:48:44.277 回答