搜 索

让js程序在ajax请求执行完成后才能继续向下运行代码

编辑:QTOOL.NET日期:2019-12-24402

在使用JQuery与js代码写ajax请求时,有时候我们需要取得ajax请求服务器获得的参数赋值变量然后再执行新js语句,往往会这样写:

<script type="text/javascript">

var aaa;

    $.ajax({

      type: "post",

      url: "请求的地址",

      data: {

        "参数": '值'

      },

      datatype: "json",

      success: function (obj) {

        aaa = obj;

      }

    });

alert(aaa);

</script>

在理想状态下,这样是可以得到ajax返回值去给变量aaa赋值的

但在ajax中默认所有请求都是异步请求,所以当上面ajax请求还在执行等待返回数据时,下面的js就已经开始执行了,这样会的不到返回值.

所以我们需要ajax代码加上一个参数async,其属性默认为true,我们需要将它设置为false,这样就会将请求变为同步请求,用户其他操作需等待请求完成后才能执行.

代码如下:

<script type="text/javascript">

var bbb;

    $.ajax({

      type: "post",

  async: false,

      url: "请求的url地址",

      data: {

        "参数1": '值1'

      },

      datatype: "json",

      success: function (result) {

        bbb = result;

      }

    });

alert(bbb);

</script>

以上示例代码表示先定义一个变量为bbb,然后通过ajax同步post请求服务器获得返回值后,将返回结果赋值给自定义的bbb变量

最后显示获得的bbb变量的值。

TAG标签:js
此文章由QTOOL.NET编辑
最新文章

热门标签