【发布时间】:2012-03-09 21:04:30
【问题描述】:
当用户向我的 API 提交无效数据(通常通过 Javascript + JSON)时,我想知道我应该回复哪个 HTTP response code。
我应该返回带有错误的 HTTP 200 响应 - 还是我的服务器应该响应 400 或 500 错误,因为请求实际上由于某些错误数据而未能通过我的验证?
似乎 400 错误是要走的路,因为“4xx 类状态代码适用于客户端似乎出错的情况”-wikipedia
但是,要记住的一件事是,大多数人使用像 jQuery 这样的框架,当 AJAX 请求以 200 以外的任何状态代码响应时,它要求您指定备用回调。
【问题讨论】:
-
400 是“正确”的方式,200 是“礼貌”的方式。你选择。
-
非常有趣的问题目前我返回一个空的 json 对象,但这可能不对,查看最接近的 HTTP 响应代码将接缝为 400(错误请求),有兴趣阅读其他人对此的看法.
-
@JoachimIsaksson 提出了一个很好的观点。 400 在技术上是正确的方法,但另一方面,期望客户端处理我们可能会或可能不会向他们抛出的每一个 HTTP 代码似乎并不正确。总是返回 200 并在返回的 JSON 中提供“errorCode”字段似乎更好。对于不存在的 API 方法,异常可能是 404。
-
如果提交了错误的密码怎么办?数据本身还不错... 4XX 或 200 + 错误?
标签: ajax api http-headers