1

假设我有一个 StackOverflow 风格的网站。我想在某人的答案下方发表评论。可能会发生两件事:

1)评论发帖成功。我将实际格式化的 DIV 作为一些 JSON 响应返回,设置 JSON。

{
    "Success": true, 
    "Data": "some escaped html to inject"
}

2)评论发帖不成功。我将错误作为 JSON 响应返回。

{
    "Success": false, 
    "Data": "You can only post every 15 seconds"
}

这是做事的正确方法吗?我注意到500 Internal error当评论帖子不成功时,StackOverflow 正在返回 Apache 代码,我觉得这很可疑。

不是为服务器实际500 Internal error错误的事情保留,而不仅仅是因为某些评论验证失败?

4

2 回答 2

2

我同意使用500 Internal error有点奇怪,但是您可以使用许多适用的响应代码来满足您的需求。

这里有一个很好的列表:http ://en.wikipedia.org/wiki/List_of_HTTP_status_codes

例子:

用户未登录,需要登录才能发表评论。发送:401 Unauthorized

用户已登录,试图对已关闭的线程发表评论。发送403 Forbidden400 Bad Request

于 2010-07-18T01:17:28.990 回答
1

我同意 500 并不理想。它应该是 4xx 状态,因为这是客户端的问题。409 是一个可能的选择。它不完全适合,但它确实包括“此代码仅在预期用户可能能够解决冲突并重新提交请求的情况下才允许使用”;他们可以通过等待来解决冲突。

于 2010-07-18T01:17:37.797 回答