0

我尝试在成功 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);
4

1 回答 1

2

默认情况下,AJAX 调用是异步的(这就是 AJAX 中的第一个“A”代表 - 异步)。这意味着稍后将调用成功处理程序。因此,您不能像您尝试做的那样从函数返回 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);
    }
});
于 2013-10-12T08:32:25.920 回答