Javascript 如果post方法中没有向db添加任何内容,我应该返回什么HTTP代码?

Javascript 如果post方法中没有向db添加任何内容,我应该返回什么HTTP代码?,javascript,ajax,http,web,httpresponse,Javascript,Ajax,Http,Web,Httpresponse,我有一个post方法,可以向db添加一个对象。但是,如果没有添加任何内容,我应该返回什么?我需要在ajax请求中处理它。状态500(服务器错误)对我来说最有意义 200成功 300雷迪雷 400客户端错误(me) 500服务器错误(您) 您没有将我发布给您的对象添加到db中,因此返回500。这样我就能抓住错误 编辑以更好地解释状态代码: 除非帖子成功,否则不要返回200。你永远不想回复200条“没用” 如果我向您发送了错误的对象/信息来保存,您应该发送400 如果您端的连接丢失或insert

我有一个post方法,可以向db添加一个对象。但是,如果没有添加任何内容,我应该返回什么?我需要在ajax请求中处理它。

状态500(服务器错误)对我来说最有意义

  • 200成功
  • 300雷迪雷
  • 400客户端错误(me)
  • 500服务器错误(您)
您没有将我发布给您的对象添加到db中,因此返回500。这样我就能抓住错误

编辑以更好地解释状态代码:

  • 除非帖子成功,否则不要返回200。你永远不想回复200条“没用”
  • 如果我向您发送了错误的对象/信息来保存,您应该发送400
  • 如果您端的连接丢失或insert语句出现问题,500可能最适合

  • 此外,您可以随时发送带有状态代码的详细信息。但是,根据使用此服务的用户的不同,请注意不要公开/发送sql错误之类的信息。

    您应该使用204状态代码(204==>无内容)

    如果原因是来自某种形式的客户端的错误数据,您应该使用400范围内的状态,很可能是422。 如果原因是由于后端出现错误,则应使用500范围内的错误。有许多不同的状态代码可供使用。您应该仔细阅读它们,并使用适用于您的场景的


    .

    根据您的用例,您可以:

    新对象违反了条件-它已经存在(唯一约束)或其他一些验证

    ->然后返回
    422不可处理实体
    ,并在正文中显示一些错误消息

    您正在执行服务器端重复数据消除-您希望优雅地发送新对象,而不关心客户端的重复数据

    ->要么假装一切正常,即创建
    201
    ,然后返回原始的现有对象作为响应。或者在为新记录的对象创建了
    201的状态和
    303以原始记录作为URL或仅
    204无内容的状态之间进行区分

    保存预期要录制的内容时,服务器端出现意外错误


    ->
    500服务器错误

    为什么没有添加任何内容?这是@Ryan状态代码的完整列表,我不知道。可能是失去了联系或者什么的。@SashaPleshakov:什么联系?如果您指的是服务器的数据库连接或其他什么,那么这是一个服务器错误,应该是500。好的,这将是一个500内部服务器错误。500:一般错误消息,在遇到意外情况时给出,没有更具体的消息适用。我不认为没有什么能阻止你发送一个带有特定信息的500。当出现错误时,最好实际返回一个错误,这样我就可以抓住,而不是用“不起作用”来表示成功。海报也给出了一个失去连接的例子,是503。是的,但是,如果没有像OP所写的那样添加任何内容,我应该返回什么?这并不一定意味着发生了内部错误。海报给出了一个失去连接的示例,该示例可能属于503。如果他那端的插页有错误,500个错误也是最好的回答。谢谢你,我同意有一些遗漏的信息可以完全回答这个问题。我更新了我的答案以涵盖更多的场景。感谢您的观点。只有在故意不添加任何数据并且不是由于错误的情况下。另外,204意味着不向客户端返回任何内容,也不一定意味着没有向数据库添加任何内容。您不需要在JS中识别这个特殊情况吗??您可以设置所需的响应头,并且应该进一步解释您的问题