RESTful ajax-该HTTP状态代码用于“;项目未找到”;

RESTful ajax - which HTTP status code for "item not found"?

本文关键字:项目 用于 ajax- HTTP 状态 代码 RESTful      更新时间:2023-09-26

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

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

这是一种好的做法吗(只有当项目实际存在于数据库中时才返回状态代码200)?如果是,在这种情况下,最好使用哪个状态代码?

是的,您希望使用故障状态代码是正确的,而不是200 OK。在这种情况下,404 not Found将是理想的。(对于过去存在的项目,也有410消失。)

链接到规范或谷歌";HTTP状态码";以获得更多的资源。

是的,只有当对象存在时才返回200状态代码是个好主意。当您的项目不存在时,您应该返回404错误代码。

更多信息请点击此处