我在使用ajax时遇到了一些问题,即当脚本加载时间较长时,会调用错误函数。但是我通过添加 async: false
解决了这个问题。
例如:
$.ajax({
type: 'POST',
url: REQUEST_URL,
async: false,
data: {
'id': id
},
dataType: 'json',
success: function(output) {
// success
},
error: function() {
alert('Error, please refresh the page');
}
});
阅读文档时,文档中提到:
默认情况下,所有请求都是异步发送的(即默认设置为true)。如果您需要同步请求,请将此选项设置为false。跨域请求和dataType:“jsonp”请求不支持同步操作。请注意,同步请求可能会暂时锁定浏览器,禁用任何正在进行的操作,而请求仍在进行中。从jQuery 1.8开始,使用async:false与jqXHR($.Deferred)已被弃用;您必须使用complete/success/error回调。 问)最后一部分关于jqXHR ($.Deferred)是什么意思?这会影响我的脚本吗?