Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Ajax 200成功/失败执行_Javascript_Php_Jquery_Ajax - Fatal编程技术网

Javascript Ajax 200成功/失败执行

Javascript Ajax 200成功/失败执行,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,我对ajax有一个问题,在这方面我是个新手。我遇到的问题是,即使登录失败,ajax仍在运行成功代码块。如何引导代码返回失败状态 我不是要你检查我的代码,只是作为参考。我只需要知道如何告诉我的代码发送除200 for OK以外的任何东西,这样我就可以在屏幕上显示错误 我输入了错误的信息,ajax认为登录发生了,但事实并非如此 AJAX部分 jQuery(document).ready(function(){ document.body.style.paddingTop="3px"; $('a[hr

我对ajax有一个问题,在这方面我是个新手。我遇到的问题是,即使登录失败,ajax仍在运行成功代码块。如何引导代码返回失败状态

我不是要你检查我的代码,只是作为参考。我只需要知道如何告诉我的代码发送除200 for OK以外的任何东西,这样我就可以在屏幕上显示错误

我输入了错误的信息,ajax认为登录发生了,但事实并非如此

AJAX部分

jQuery(document).ready(function(){
document.body.style.paddingTop="3px";
$('a[href^="#fallr-"]').click(function(){
    var id = $(this).attr('href').substring(7);
    methods[id].apply(this,[this]);
    return false;
});
var methods = {  
    login : function(){
        var login = function(){
            var username = $(this).children('form').children('input[type="text"]').val();
            var password = $(this).children('form').children('input[type="password"]').val();
            var remember = $(this).children('form').children('input[name="remember"]').val();
            var token = $(this).children('form').children('input[name="token"]').val();
            if(username.length < 1 || password.length < 1 || token.length < 1){
                alert('Invalid!\nPlease fill all required forms');
                console.log(token)
            } else {
                var data = {
                    username: username,
                    password: password,
                    remember: remember,
                    token: token,
                }
                $.ajax({
                    type: "POST",
                    url: "login.php",
                    data: data,
                    dataType: "text",
                    success: function(data){
                        $('#error').append('Success');
                        // $.fallr.hide();
                        // window.location.href = "http://www.bettergamerzunited.com/members/";
                    },
                    error: function(data) {
                        $('#error').append('falied');
                    }
                });

            }
        }                        
        $.fallr.show({
            icon        : 'secure',
            width       : '400px',
            content     : '<h4 class="titles">Login</h4>'
                        + '<span id="error"></span>'
                        + '<form>'
                        +     '<input placeholder="Username" name="username" type="text"/'+'>'
                        +     '<input placeholder="Password" name="password" type="password"/'+'>'
                        +     '<input type="checkbox" name="remember" type="remember"/'+'> Remember Me'
                        +     '<?php echo $hidden; ?>'
                        + '</form>',
            buttons : {
                button1 : {text: 'Submit', onclick: login},
                button4 : {text: 'Cancel'}
            }
        });
    }
};
});

使用PHP头函数

header('HTTP/1.0 403 Forbidden'); // or whatever status code you want to return.

在使用header函数之前,不能输出任何其他内容。

您可以为ajax错误部分添加以下代码。这样,您将了解错误的确切含义,并可以对其进行调试

header('HTTP/1.0 403 Forbidden'); // or whatever status code you want to return.
error: 
    function (XMLHttpRequest, textStatus, errorThrown) {
        alert(textStatus);
        alert(errorThrown);
    }
}

如果它仍然是来自服务器(200)的有效请求,但由于凭据错误而失败,只需像平常一样处理响应,就会出现
返回false
,只需在成功块中处理它
error: 
    function (XMLHttpRequest, textStatus, errorThrown) {
        alert(textStatus);
        alert(errorThrown);
    }
}