小编典典

jQuery:处理失败的AJAX请求的回退

ajax

jQuery可以为失败的AJAX调用提供后备功能吗?这是我的尝试:

function update() {
    var requestOK = false;

    $.getJSON(url, function(){
        alert('request successful');
        requestOK = true;
    });

    if (!requestOK) {
        alert('request failed');
    }
}

不幸的是,即使调用了$
.getJSON()方法的回调函数,在回调函数有机会设置requestOK变量之前,我也会收到消息“请求失败”。我认为这是因为代码并行运行。有没有办法处理这种情况?我考虑过链接或某种方式等待AJAX​​请求,包括其回调函数。但是如何?有谁知道这是怎么做到的吗?


阅读 516

收藏
2020-07-26

共1个答案

小编典典

您将需要使用较低级别的$
.ajax
调用或ajaxError函数。这是$
.ajax方法的用法:

function update() {
  $.ajax({
    type: 'GET',
    dataType: 'json',
    url: url,
    timeout: 5000,
    success: function(data, textStatus ){
       alert('request successful');
    },
    fail: function(xhr, textStatus, errorThrown){
       alert('request failed');
    }
  });
}

编辑 我将a添加timeout$.ajax通话中并将其设置为五秒钟。

2020-07-26