在我的webapp中,用户可以将其他用户添加到他们的项目中。用户可以键入电子邮件地址,并通过邮件向服务器询问用户是否存在。如果用户存在,它将发回代表该对象的DTO。如果用户不存在,则应该发回null。
我希望null响应触发成功回调,以区别于可能发生的任何其他服务器端错误。我在服务器端使用Spring MVC。但是,返回null会触发错误回调。有关如何实现这一目标的任何建议吗?
答案 0 :(得分: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"
}
}
答案 1 :(得分:2)
来自http://api.jquery.com/Ajax_Events/
<强>成功强>
只有在请求成功时才会调用此事件(服务器没有错误,数据没有错误)。
错误强>
只有在请求发生错误时才会调用此事件(您不能同时出现错误和带有请求的成功回调)。
由于数据有错误,会触发错误()。尝试使用您在ajax调用中指定的有效数据格式(例如,json,jsonp,...)来包装空响应。