在ajax post timeout上显示jquery警报

时间:2013-12-23 06:02:48

标签: javascript jquery ajax

我正在尝试创建一些会向用户报告$ .post()请求已超时的内容。为此,我正在使用
        

        // Set timeout for ajax request
        $.ajaxSetup({
           timeout: 5000 //5 Seconds to timeout
        });

//when ajax request start show overlay $(document).ajaxStart(function(){ $.blockUI({ css: { border: 'none', padding: '15px', backgroundColor: '#000', '-webkit-border-radius': '10px', '-moz-border-radius': '10px', opacity: .5, 'z-index':'15000', color: '#fff' } }); }); //when ajax request stops remove overlay $(document).ajaxStop(function(){ setTimeout($.unblockUI, 500); }); </pre>

如何在其中添加javascript / jquery消息以显示请求已超时。

3 个答案:

答案 0 :(得分:0)

对于每个单独的ajax调用,您可以指定错误处理程序,其中一个错误将是“超时”。这在jQuery doc here中有解释。

或者,您可以设置全局$(document).ajaxError(fn) handler并在一个位置检查超时错误。

请记住,JSONP ajax调用不会出现超时错误(因为它们使用脚本标记)。

答案 1 :(得分:0)

使用ajaxError()处理程序注册一个全局错误处理程序,您可以使用thrownError检查是否是因为超时

$(document).ajaxError(function (event, jqXHR, options, thrownError) {
    if (thrownError== 'timeout') {
        alert('timedout')
    }
})

演示:Fiddle

答案 2 :(得分:0)

我相信您可以使用ajaxError来捕获失败,然后使用thrownError并查找errorcode for timeout(我相信408)。