我有以下 jQuery 脚本:
$(document).ready(function() {
$("#resendActivationEmailLink").bind("click", function(event) {
$.get($(this).attr("href"), function() {
$("#emailNotActivated").html("<span>not yet activated. email sent!</span>");
}, "html");
event.preventDefault();
});
});
基本上,当用户单击链接时,会调用以下服务器端方法:
@RequestMapping(value = "/resendActivationEmail/{token}", method = RequestMethod.GET, produces = "application/json")
public @ResponseBody
String resendActivationEmail(@PathVariable("token") String token) {
preferencesService.resendActivationEmail(token);
return "dummy";
}
并且一些业务逻辑在服务器上执行,但是除了 ajax 成功或 ajax 失败之外,服务器没有真正的结果可以在客户端/浏览器端使用。
现在我真的不确定我的服务器端方法应该返回什么!
目前它只返回字符串dummy
,但当然这只是暂时的。我应该选择无返回类型(void
)还是null
其他?
请注意,我可以更改 jQuery get 方法的数据类型参数。
编辑:
我改变了我的服务器端方法如下:
@RequestMapping(value = "/resendActivationEmail/{token}", method = RequestMethod.GET)
public @ResponseBody void resendActivationEmail(@PathVariable("token") String token) {
preferencesService.resendActivationEmail(token);
}
@ResponseBody
是必需的,因为这是一个 ajax 调用。