-3

以下是我正在使用的功能。

我们可以这样分配吗?

<script language="javascript" type="text/javascript">
    function validation(){

    var flag

    $.ajax({
      url: 'ajax/test.php',
      success: function(data) {

       flag =data;

      }
    });

    alert(flag);

    }


    </script>
4

1 回答 1

1

分配没有问题,但是您在异步 ajax 调用返回之前调用 alert ,因此您的 alerting undefined.

你必须这样做:

$.ajax({
  url: 'ajax/test.php',
  success: function(data) {
     alert(data);
  }
});

如果您需要在另一个函数中使用标志,则必须确保在完成 ajax 调用之前不调用此函数。你可以这样做:

var flag;
function otherFunction() {
    alert(flag);
}  
$.ajax({
  url: 'ajax/test.php',
  success: function(data) {
     flag = data;
     otherFunction();
  }
});

在 javascript 中你需要了解的最基本的事情之一是你必须适应它的异步特性。

您可以通过提供回调来做到这一点

  • 事件处理程序
  • 所有资源获取函数的成功或错误处理函数

请注意,这比管理自己的主循环或许多线程要简单得多......

于 2012-10-29T18:32:10.947 回答