0

在我的 webapp 中,用户可以将其他用户添加到他们的项目中。用户可以输入电子邮件地址,它会通过邮件向服务器询问用户是否存在。如果用户存在,它将发回代表该对象的 DTO。如果用户不存在,它应该返回 null。

我希望空响应触发成功回调,以将其与可能发生的任何其他服务器端错误区分开来。我在服务器端使用 Spring MVC。但是,返回 null 会触发错误回调。关于如何做到这一点的任何建议?

4

2 回答 2

4

null您应该返回一个表示请求不成功或用户不存在的对象,而不是返回。null不是有效的 JSON(这就是error调用回调的原因)。因此,您可以返回如下内容:

{
    "successful": false,
    "message": "User does not exist",
    "userDTO": null
}

这在 Spring MVC 中应该是微不足道的;您可以在返回模型时简单地将它们添加到模型中,或者使用包含此信息的 POJO 并将其返回。

相反,对于成功的请求,您将拥有:

{
    "successful": true,
    "message": "User found",
    "userDTO": {
        "firstName": "Guybrush",
        "lastName": "Threepwood"
    }
}
于 2013-07-09T16:16:33.813 回答
2

来自http://api.jquery.com/Ajax_Events/

成功

仅当请求成功时才调用此事件(服务器没有错误,数据没有错误)。

错误

仅当请求发生错误时才调用此事件(您永远不能在请求中同时出现错误和成功回调)。

由于您对数据有错误,因此会触发error() 。尝试使用您在 ajax 调用中指定的有效数据格式(例如,json、jsonp、...)来包装空响应。

于 2013-07-09T16:18:46.073 回答