ajax调用成功后返回数据

时间:2013-10-12 08:29:22

标签: jquery ajax

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

1 个答案:

答案 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);
    }
});