jQuery Ajax - 回调函数

4

我正在制作一个ajax登录表单。当用户使用错误的密码登录时,login.php将返回“密码不正确”。但是javascript似乎没有捕捉到它。

$('#login_btn').click(function(){
            var username = $('#login_username').val();
            var password = $('#login_password').val();
            $.post("login.php", { username: username, password: password },
                function(data){
                    if(data == 'Incorrect password'){
                        $('#login_callback').html(data);    
                    }
                    else{
                        $('#login').html(data);
                    }
                }
            );                     

        });

我可以成功登录,但只有在密码错误时才会出现问题。


1
你尝试过使用alert()来显示"data"返回的内容吗? - Jason
1
天啊,我真是个白痴。我刚刚检查了我的样式表... #login_callback{display: none;} - Ben Shelock
1个回答

9

尝试更改您的请求,使用$.ajax而不是$.post,因为$.post会静默失败。

$.ajax({
   type: "POST",
   url: "login.php",
   dataType: 'text',
   data: { username: username, password: password },
   success: function(data) {
     if(data == 'Incorrect password'){
       $('#login_callback').html(data);        
     }
     else{
       $('#login').html(data);
     }
   },
   error: function(msg) {
    alert("O NOES");
   }
});

这基于我的理论,即login.php在失败时返回非200响应。只是一种猜测。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接