Ajax完成后获取变量
我有以下代码可以向服务器发出请求:
function myAjaxCheck(token) { $.ajax({
type: 'POST',
url: 'auth.php',
data: {
token: token,
},
dataType: 'json',
success: function (data) {
if (data.auth == 'OK') {
alert ('ok');
}
} else {
alert('Error: ' + data.auth);
}
}
}).done(function (data) {
return data;
});
}
因此,我需要将返回的数据传递给一个像这样的变量:
Var MyVariable = myAjaxCheck(token);console.log(MyVariable);
回答:
回答:
问题出在哪里,应该在完成后返回数据,但不是。
回答:
默认情况下,ajax()
请求是异步的,因此ajax()
通常会在请求完成之前返回对的调用。您可以改用回调函数。
function myAjaxCheck(token, callback) { $.ajax({
type: 'POST',
url: 'auth.php',
data: {
token: token,
},
dataType: 'json',
success: function (data) {
if (data.auth == 'OK') {
alert ('ok');
}
} else {
alert('Error: ' + data.auth);
}
callback(data);
}
});
}
var myVariable;
myAajxCheck(token, function(returnedData){ //anonymous callback function
myVariable = returnedData;
console.log(myVariable);
});
如果绝对必要,则可以async: false
在中调用ajax()
。
以上是 Ajax完成后获取变量 的全部内容, 来源链接: utcz.com/qa/398621.html