我尝试在成功ajax后获取数据,但它无法正常工作,请帮帮我。
var aid='11111111V';
var dch=0;
$.ajax({
type:"POST",
url:"new_hpa_fun_aplcval.php",
data:"aid="+aid,
success: function(msg){
if (msg=='OK'){
dch=1;
}else{
dch=2;
}
}
});
alert(dch);
答案 0 :(得分:2)
默认情况下,AJAX调用是异步的(这就是AJAX中第一个“A”代表的 - 异步)。这意味着成功处理程序将被称为SOMETIME LATER。因此,您无法像尝试那样从函数返回AJAX调用的响应,因为函数返回时尚未设置dch
的值。
相反,您必须重新构建代码,以便需要来自ajax调用的响应的任何代码在成功处理程序中或从成功处理程序调用(并将ajax结果传递给它)。您根本无法使用异步ajax调用编写简单的顺序过程代码。您必须学习构建代码的新方法,以便使用AJAX调用的异步特性。
var aid='11111111V';
$.ajax({
type:"POST",
url:"new_hpa_fun_aplcval.php",
data:"aid="+aid,
success: function(msg) {
var dch = 0;
if (msg =='OK'){
dch=1;
} else {
dch=2;
}
// put your code here that uses the result of the AJAX call
alert(dch);
}
});