Javascript 函数返回undefine,即使我在返回前检查了变量是否未定义
我在函数中有一个非常简单的jquery ajax调用,但是我得到了一个非常奇怪的错误。这是一个非常简单的功能Javascript 函数返回undefine,即使我在返回前检查了变量是否未定义,javascript,jquery,ajax,Javascript,Jquery,Ajax,我在函数中有一个非常简单的jquery ajax调用,但是我得到了一个非常奇怪的错误。这是一个非常简单的功能 function checkLogin() { $.ajax({ url: "checkLogin.php", success: function(data) { alert(data); //this does print what I want to see return data; //this
function checkLogin() {
$.ajax({
url: "checkLogin.php",
success: function(data) {
alert(data); //this does print what I want to see
return data; //this however returns undefined!
}
});
}
//some button onclick
var login_status = checkLogin();
alert(login_status); //shows undefined!
这可能会帮助您:
基本上,由于AJAX是异步的,因此将在返回语句之前调用警报
您可以通过切换两个表达式的顺序(或完全删除警报)来修复此问题:
。。。或利用承诺接口:
$.ajax({
url : "checkLogin.php",
success : function(data){
return data;
}
}).then(function() { alert(data); });
ajax
是一种async
操作和您的警报(登录状态)
是在ajax完成之前执行的,因此它的行为是正确的。
$.ajax({
url : "checkLogin.php",
success : function(data){
return data;
}
}).then(function() { alert(data); });