在使用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变量的值。