【发布时间】:2014-01-15 12:11:38
【问题描述】:
有很多关于这个的话题,但没有一个有任何帮助。 一切正常,数据被插入到数据库中,并且(我使用 spring mvc 作为后端)我的控制器也可以正确处理所有事情。
Ajax 代码;
$.ajax({
type: "POST",
url: "http://localhost:8080/NotePath/register",
data: "email=" + email + "&password=" + password + "&name=" + name,
succes: function(response){
$("#formMail, #formPass, #formUsername").val("");
$("#loginRegister, #whiteBg").fadeOut();
},
error: function(xhr,err){
alert("readyState: "+xhr.readyState+"\nstatus: "+xhr.status);
alert("responseText: "+xhr.responseText);
}
});
控制器代码;
@RequestMapping(value = "/register")
public @ResponseBody String registerUser(@RequestParam(value = "email") String email, @RequestParam(value ="password") String password,
@RequestParam(value = "name") String name, Model model){
String status = "";
Boolean isEmailTaken = registerServiceImpl.isEmailTaken(email);
Boolean isNameTaken = registerServiceImpl.isNameTaken(name);
if(isEmailTaken == false && isNameTaken == false){
try {
registerServiceImpl.registerUser(email, password, name);
status = "Succes";
} catch (Exception e) {
status = "Error";
e.printStackTrace();
}
}else if(isEmailTaken == true){
status = "mail taken";
}else if(isNameTaken == true){
status = "name taken";
}
return status;
}
我什至尝试返回一个 responseEntity;
return new ResponseEntity<String>(status, respHeader, HttpStatus.OK);
当我查看我的响应标题(使用谷歌浏览器)时,它甚至会显示“邮件已被占用”或“姓名已被占用”或任何应该出现的消息。但由于某种原因,ajax 成功功能没有被触发......
奇怪的是,我还有其他可以正常工作的 ajax 调用。
我认为状态码为 200 意味着一切都......好吧......OK :p
【问题讨论】:
-
success不是succes... -
succes: function(response){应该是success: function(response){。所以基本上,你没有正确注册回调。 -
我的天啊……我已经被困在这个问题上 4 个小时了。谢谢大家!
-
浏览器调试器是你的朋友。