(1)setTimeout 来解决
把ajax代码放在sestTimeout中,让浏览器重启一个线程来操作,这样就解决问题了,代码如下:
setTimeout(function(){
$.ajax({
url: 'url',
data: { },
// async:false,//同步请求
dataType: "json",
type: "POST",
header:{
'contentType': "application/json",
},
success: function(res){
data = res
console.log('请求成功',data)
},
error: function(res){
console.log('请求失败',res)
}
});
},0)
(2)将ajax同步的数据,赋值到页面的隐藏域中
这个就是在同步请求的方法中,将数据赋值到页面中的隐藏域中,如果再次使用该数据,从隐藏域中将数据再拿出来使用。这种方法比较麻烦。
隐藏域:
<input type="hidden" id="data" value="" />
ajax请求得到的数据:
$("#data").val(data);
调用这个数据:
var data = $("#data").val();