doc*_*nge 1 javascript ajax jquery if-statement
我有一个if声明:
if(authenticate_session("secret_password12345")){
alert("You are authenticated");
}else{
alert("Intruder alert!");
}
Run Code Online (Sandbox Code Playgroud)
和javascript身份验证函数,它使jQuery POST AJAX调用服务器进行实际身份验证,并返回true或false:
function authenticate_session(session_id){
$.post("/auth.php",
{ action: "authenticate_session", login_id: session_id },
function(data){
if(data == "denied"){
alert("denied");
return false;
}else if(data == "accepted"){
alert("accepted");
return true;
}
},
"text");
}
Run Code Online (Sandbox Code Playgroud)
但是,当if语句调用athentication函数时,它不会等待AJAX完成,并且总是执行'else'.如果我添加'return true;' 进入认证功能的第一行,在ajax之前,if语句按预期执行=> alert("你被认证").
我知道服务器端正在正常运行,因为正在按预期调用警报("拒绝")和警报("已接受")(但有趣的是,在if语句警报之后).
如何使我的if语句等到认证功能完成之后?
谢谢!