Php jQuery ajax JSON自定义错误处理

Php jQuery ajax JSON自定义错误处理,php,jquery,ajax,json,Php,Jquery,Ajax,Json,我想使用登录系统jQueryAjax和json。我对成功函数没有任何问题。我不知道如何克服诸如“登录不正确”之类的自定义错误 这是我的密码,请帮我 <script> $(document).ready(function(){ $("#login").click(function(){ if($("#defaultEmail").val() == ""){ $("#defaultEmail").addCla

我想使用登录系统jQueryAjax和json。我对成功函数没有任何问题。我不知道如何克服诸如“登录不正确”之类的自定义错误

这是我的密码,请帮我

<script>
    $(document).ready(function(){
        $("#login").click(function(){
            if($("#defaultEmail").val() == ""){
                $("#defaultEmail").addClass("field-err");
                $("#defaultEmail").focus();
            }else if($("#defaultPassword").val() == ""){
                $("#defaultEmail").removeClass("field-err");
                $("#defaultPassword").addClass("field-err");
                $("#defaultPassword").focus();
            }else{
                $("#defaultPassword").removeClass("field-err");
                $('#loading').css('display', 'block');
                var email = $('#defaultEmail').val();
                var password = $('#defaultPassword').val();
                var queryString = "email=" + email + "&password=" + password + "";
                $.ajax({
                  url: 'secureLogin.php',
                  contentType: "application/json; charset=utf-8",
                  dataType:'json',
                  async: false,
                  type:'GET',
                  data: queryString,
                  success: function(data){
                    $('#loading').css('display', 'none');
                    var url = "c_profile.php";
                    $(location).attr('href',url);
                  },
                  error: function(request,error){
                    $('#loading').css('display', 'block');
                    $("#log-ajax-error").append("ERROR: " + error);
                  }
                });
            }
        });
    });
</script>

我正在抛出json_编码来纠正错误。请帮我做这个。提前感谢。

在ajax中,错误处理程序并不构成您抛出的错误,它构成连接错误或请求错误。这意味着,无论您以何种方式发回错误响应,它都会命中成功回调

在成功的过程中,您应该对响应进行一些检查:

success: function(data){ if(data.status === false) { // There was an error } else { $('#loading').css('display', 'none'); var url = "c_profile.php"; $(location).attr('href',url); } }, 成功:功能(数据){ 如果(data.status==false) { //有一个错误 }否则{ $('加载').css('显示','无'); var url=“c_profile.php”; $(location.attr('href',url); } }, 并在PHP处理程序中添加一个状态键:

$arr = array( 'status' => true (or false), 'a' => 'Unable to login' ); $arr=数组( “状态”=>true(或false), 'a'=>'无法登录' );
在ajax中,错误处理程序并不构成您抛出的错误,它构成连接错误或请求错误。这意味着,无论您以何种方式发回错误响应,它都会命中成功回调

在成功的过程中,您应该对响应进行一些检查:

success: function(data){ if(data.status === false) { // There was an error } else { $('#loading').css('display', 'none'); var url = "c_profile.php"; $(location).attr('href',url); } }, 成功:功能(数据){ 如果(data.status==false) { //有一个错误 }否则{ $('加载').css('显示','无'); var url=“c_profile.php”; $(location.attr('href',url); } }, 并在PHP处理程序中添加一个状态键:

$arr = array( 'status' => true (or false), 'a' => 'Unable to login' ); $arr=数组( “状态”=>true(或false), 'a'=>'无法登录' ); 在服务器端

$arr = array('error' => 'Unable to login');
echo json_encode($arr);
在客户端

success: function(data){
    $('#loading').hide(); 
    if( 'error' in data ){ 
        $("#log-ajax-error").append("ERROR: " + data.error);
    }
    else{
       var url = "c_profile.php";
       $(location).attr('href',url);
    }
},
如果ajax请求出现错误,将调用错误回调,因此您的代码需要在成功处理程序中

在服务器端

$arr = array('error' => 'Unable to login');
echo json_encode($arr);
在客户端

success: function(data){
    $('#loading').hide(); 
    if( 'error' in data ){ 
        $("#log-ajax-error").append("ERROR: " + data.error);
    }
    else{
       var url = "c_profile.php";
       $(location).attr('href',url);
    }
},

如果ajax请求出现错误,将调用错误回调,因此您的代码需要在成功处理程序中

亲爱的aziz.punjani,一切都很好。如果我提供错误的数据,那就是抛出一个错误。问题是在抛出错误数据后,如果您再次尝试使用正确的登录,它不会重定向。i、 它总是转到if循环。请帮助$arr=array('success'=>'正在重定向,请稍候…);echo json_编码($arr);哦,我明白了:)非常感谢你。阿齐兹。普加尼,一切都很好。如果我提供错误的数据,那就是抛出一个错误。问题是在抛出错误数据后,如果您再次尝试使用正确的登录,它不会重定向。i、 它总是转到if循环。请帮助$arr=array('success'=>'正在重定向,请稍候…);echo json_编码($arr);哦,我明白了:)非常感谢