function check_login(){
    var authenticated  = false;
    $.ajax({type:"POST",url:"/account/islogin/",data:"",async:"false",
        success:function(data){
            if(data=="null"){
                signup();
                authenticated =  false;
            }
            authenticated =  true;
        }
    });
    return authenticated;
};


为什么函数总是返回false,甚至执行authenticated=true

最佳答案

问题是您运行if语句,然后每次都将authenticated设置为true。听起来您正在寻找if else语句。

function check_login(){
    var authenticated  = false;
    $.ajax({type:"POST",url:"/account/islogin/",data:"",async:false,
        success:function(data){
            if(data=="null"){
                signup();
                authenticated =  false;
            } else {
                authenticated =  true;
            }
        }
    });
    return authenticated;
};


甚至更好,您可以将身份验证设置为默认为true,然后仅在数据为null时将其设置为false。

function check_login(){
    var authenticated  = false;
    $.ajax({type:"POST",url:"/account/islogin/",data:"",async:false,
        success:function(data){
            authenticated =  true;
            if(data=="null"){
                signup();
                authenticated =  false;
            }
        }
    });
    return authenticated;
};

10-04 20:38