【问题标题】:Ajax returns status code 200, success function not triggeringAjax 返回状态码 200,未触发成功函数
【发布时间】: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 个小时了。谢谢大家!
  • 浏览器调试器是你的朋友。

标签: java jquery ajax


【解决方案1】:

您没有正确注册回调。

succes: function(response){ 应该是success: function(response) {

【讨论】:

  • 成功在我的母语中就像“成功”一样写成,这可能是我一生都看不到它的原因。对蹩脚的否决票太糟糕了。谢谢一群人!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多