在ajax()方法jquery中没有收到错误消息

时间:2014-01-19 14:23:47

标签: php jquery ajax login error-handling

假设:
1)。我的登录表有两个字段注册,密码用一个按钮叫登录(提交)
2)。我的后端脚本login.php很好没有错误 这是我通过登录表单发送数据并将其与后端进行比较的代码,现在问题是当我提供登录所需的正确密码和注册时,事件成功完成但是当我提供错误的凭据时它没有显示错误消息显示在ajax()错误:function()。虽然消息显示一段时间,当我双击登录按钮,然后页面自动刷新。任何人帮助我收到错误信息,当注册错误密码时

$(function(){
/*$('#err').hide();*/
$('.err').hide();
/*$('.error').hide();*/
$('#eno').blur(function(){
    var eno = $('input#eno').val();
    if(eno == ""){
        $('#err_eno').show();
        $('input#eno').focus();
        return false;
    }else{
        $('#err_eno').hide();
    }   
});

$('#pw').blur(function(){
    var pw = $('input#pw').val();
    if(pw == ""){
        $('#err_pw').show();
        $('input#pw').focus();
        return false;
    }else{
        $('#err_pw').hide();
    }
});

$('#submit_btn').click(function(){

    var dataString = $('#log').serialize();
//alert (dataString);return false;  
$.ajax({
            type:"POST",
            url:"script/login.php",
            data:dataString,
            success:function(){
                    window.location='profile.php';
            },
            error:function(){
                $('#err').html("<p>Provide right combination</p>");
            }
        });
return false;
}); 

});

2 个答案:

答案 0 :(得分:0)

The error function in called when a request fails,在您的情况下,ajax函数成功执行。你要做的是将ajax函数的dataType属性设置为json,并将json数组作为来自服务器的响应传递。查看更多信息here

以下示例:

$.ajax({
            type:"POST",
            url:"script/login.php",
            data:dataString,
            dataType:"json",
            success:function(data){
                    if(data.error==true){     
                      $('#err').html("<p>Provide right combination</p>");
                    }else{
                        window.location='profile.php';
                    }
            },
            error:function(){

            }
        });

});

您的login.php

//if success 
 echo json_encode(array('success'=>TRUE));
//else if password failed
echo json_encode(array('error'=>TRUE));

我希望这会有所帮助。

答案 1 :(得分:0)

您的Success函数始终执行,请尝试以下实现:

$.ajax({
            type:"POST",
            url:"script/login.php",
            data:dataString,
            success:function(x){
            if (x == 1)
            {
        window.location='profile.php';
            }
            else
            {
        //Handle Error Here
                $('#err').html("<p>Provide right combination</p>");

            }
          }  
        });

<强>的login.php

<?php

//execute code

//if success 
 print "1";
//else
print "";
?>