嗨,请使用此代码通过ajax验证我的应用:
var myAuth = false;
$.ajax({
type: 'POST',
url: 'loading.php',
data: { token: 123456789},
success: function(data){
if (data.response == 'OK'){
myAuth = true;
}else{
myAuth = false;
}
}
});
if (myAuth == true){
do something
}
为什么myAuth在响应正常后没有得到值?
答案 0 :(得分:2)
因为XHR是异步运行的(以示例中的方式使用)。
您需要将该代码放在success
回调中。
此时,一旦发出请求就会评估条件,而不是在请求完成时评估。因此,myAuth
始终设置为其初始值false
。
另一种方法是使请求同步,但这会在请求打开时锁定浏览器UI,因此被认为是不好的做法。