我正在尝试创建一些会向用户报告$ .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消息以显示请求已超时。
答案 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)。