在使用jq发送ajax到后台时默认是异步请求,会在发送ajax请求的同时继续执行下面的js代码,如果下面的js代码需要使用到ajax传输过来的参数时,就会获取不到,这个时候就应该把异步请求改为同步请求,只有ajax请求响应完成之后才会继续执行下面的ajax代码,例如:
var datas;
$.ajax({
url: url,
type: "POST",
data: "",
cache: false,
dataType: "json",
success: function (data) {
datas = data;
}
});
alert(datas);
这篇js代码段在执行到ajax请求的同时会继续执行下面的弹窗语句,这时ajax并没有将数据响应回来,所以没有结果,可以加入async:false,开启同步请求。
var datas;
$.ajax({
url: url,
type: "POST",
data: "",
cache: false,
dataType: "json",
async:false, //同步方式发起请求
success: function (data) {
datas = data;
}
});
alert(datas);
在同步请求开启的情况下结果打印正常