在JQuery中设置ajax的超时

时间:2015-12-18 13:09:48

标签: ajax

我为ajax连接设置了超时功能,但我得到了回报 作为statusText中的'error'而不是'Timeout'

enter image description here

2 个答案:

答案 0 :(得分:0)

在你的情况“t”中,第二个参数(除了null)的可能值是“timeout”,“error”,“abort”和“parsererror”。

您收到错误的原因可能是文本状态可能是原始策略。是CORS请求吗?

答案 1 :(得分:0)

必须在90秒的时间段之前发生错误。

要验证可以捕获超时,可以将timeout值设置为低值,例如:

function ajaxTest() { 
    $.ajax({ 
        type : "GET", 
        url : "http://www.google.com", 
        datatype : "json", 
        timeout : 1                                 //<-- Set to a low value
    }).done(function(data, textStatus, jqXHR) {

        // Success
        alert('Success!');

    }).fail(function(jqXHR, textStatus, err) {

        // Error
        alert('Failure! ' + textStatus);

    });
}

在上面将timeout扩展到90000可能会引发CORS错误 - 因为http://www.google.com与您的不同(我假设!)。

这是因为在90秒之前检测并处理了错误。

因此,我声称您有一个单独的错误,导致timeout处理无法按预期运行。