这真的很简单。但是,即使在互联网上徘徊之后,我尝试编写的代码也无法正常工作。

所以我有这个。代码以检查用户是在线还是离线。

//Check if it's a valid user
function checkUser(){
status = (function(){
    var isOnline = null;
    $.ajax({
        async: false,
        global: false,
        type: "POST",
        url: "./system/checkUser.php",
        data: $("#webcam").serialize(),
        success: function(data){
            isOnline = (data == "1");
        }
    });
    return isOnline;
})();

return status;
}


这就是我尝试使用它的方式

function loadProfile(){
var text = checkUser();
alert(text);

if(text != true){
    alert("Invalid user!");
    return;
}else{
    //Code
}


但是无论从checkUser()得到什么,我总会得到“无效用户!”。警报,即使文本为真。有人能帮我一下吗?我迷失了语言。

最佳答案

从jQuery 1.8开始,不建议使用async:false和jqXHR($ .Deferred);您必须使用成功/错误/完成回调选项,而不要使用jqXHR对象的相应方法,例如jqXHR.done()或已弃用的jqXHR.success()。


http://api.jquery.com/jquery.ajax/



您可以做的是:

function checkUser(callback){
    $.ajax({
        global: false,
        type: "POST",
        url: "./system/checkUser.php",
        data: $("#webcam").serialize(),
        success: callback
    })
}

function loadProfile(){
    checkUser(function(text){
        alert(text);

        if(text != true){
            alert("Invalid user!");
            return;
        }else{
            //Code
        }
    });
}

关于javascript - Javascript忽略对与错,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21641659/

10-12 13:22