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