RESTful ajax-“找不到项目”的哪个HTTP状态代码?

fst*_*nis 2 javascript ajax jquery http-status-codes single-page-application

可以说我有一个单页Web应用程序,其中包含项目列表,用户可以在其中单击某个项目以查看有关该项目的更多信息。使用对URL http://www.example.com/item/[id]的AJAX GET请求,异步加载实际的项目信息,并在加载时显示。

问题是,如果给定ID的商品不存在,该怎么办?现在,该请求返回状态码200,但实际内容表明该商品不存在。这似乎是个坏主意,所以我想让它返回一个状态代码,该状态代码在某种意义上表示请求失败,因为该项目不存在(例如,它也允许我将其捕获到失败处理程序中)在jQuery的ajax函数中)。

这是一种好习惯吗(仅当该项目实际存在于数据库中时才返回状态代码200),如果是,那么在这种情况下哪种状态代码将是最佳选择?

Sha*_*hai 6

是的,您应该使用故障状态代码,而不是200 OK。在这种情况下,“ 404未找到”将是理想的选择。(对于以前存在的项目,也有410个不适用。)

链接到spec或Google“ HTTP状态代码”以获取更多资源。