我在一个函数中有一个非常简单的jquery ajax调用,但我得到了一个非常奇怪的错误。这是一个非常简单的功能
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是异步的,所以警报将在return语句之前调用。
您可以通过切换两个表达式的顺序(或完全删除警报)来修复它:
$.ajax({
url: "checkLogin.php",
success: function(data) {
return data;
alert(data);
}
});
或者使用Promise接口:
$.ajax({
url : "checkLogin.php",
success : function(data){
return data;
}
}).then(function() { alert(data); });