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

回到顶部