【发布时间】:2011-06-28 15:06:03
【问题描述】:
我的项目正在从浏览器返回 JSON 到 Ajax 调用。我想知道什么是正确的状态代码,用于返回对无效(但已成功处理)数据提交的响应。
例如,jQuery 在发出 Ajax 请求时有以下两个特定的回调:
success:当 200/2xx 状态代码与响应一起传递时触发。
error:当 4xx、5xx 等状态码随响应返回时触发。
如果用户尝试创建一个新的“Person”对象,我会在成功时发回新创建的对象的 JSON 表示,从而使 javascript 可以访问新对象所需的唯一 ID,等等。这当然是, 发送一个 200 状态码。
如果用户提交格式错误或无效的数据(例如,无效/不完整的“名称”字段),我想通过 JSON 发回验证错误消息。 (我不明白为什么这会是一件坏事)。
我的问题是:在这样做时,我是否应该发送一个200状态码,因为我成功处理了他们的无效数据?因此,我将使用 jQuery success 回调,但只需检查错误...
或者,我应该使用 4xx 状态码,也许是“错误请求”,因为他们发送给我的数据无效吗? (因此,使用error 回调来执行必要的客户端通知)。
【问题讨论】:
-
我知道并确信除了我给出的关于导致 jQuery 触发我提到的回调的原因的简单解释之外,还有更多的细节。只是想让我对描述的理解简短而简单。
标签: javascript ajax json http http-status-codes