jQuery中的Ajax请求为异步请求,通常会开启一个新的进程来运行,$.ajax()中的setting属性async默认为true,默认设置下,所有请求均为异步请求。如果需要发送同步请求,请将此选项设置为 false。注意,同步请求将锁住浏览器,用户其它操作必须等待请求完成才可以执行。
以下用过两个例子来将异步请求转为同步:
example1:
loginRedirect() {
debugger;
$.ajaxSettings.async = false;
$.getJSON('../../../../../assets/data/server-port.json', getData => {
this.redirectUrl = getData.backenddirect;
});
$.ajaxSettings.async = true;
window.location.href = this.redirectUrl;
}
example2:
var temp;
$.ajax({
async: false,
type : "POST",
url : defaultPostData.url,
dataType : 'json',
success : function(data)
{
temp=data;
}
});
alert(temp);
可以参考: