jQuery.ajax()的StatusCode检测连接丢失或离线
问题描述:
statusCode
接受一个对象与数值状态代码为键和功能的值,例如:jQuery.ajax()的StatusCode检测连接丢失或离线
$.ajax({
url: '/api/points/' + geocode['place_id'],
statusCode: {
409:() => {
alert('Duplicate');
},
204:() => {
valid = true;
}
}
});
这如何被用于,如果一个请求,以检测因为用户脱机而失败?我不认为jQuery有这种情况下的状态代码(它在docs中没有提到)?
答
超时不会引起他们的状态代码,但你可能会error
回调处理:
$.ajax({
url: '/api/points/' + geocode['place_id'],
statusCode: {
409:() => {
alert('Duplicate');
},
204:() => {
valid = true;
}
}
}).error(function(jqXHR, textStatus, errorThrown) {
if (textStatus == 'timeout') {
// timeout occured
}
});
+0
离线时它不工作,“textStatus”只是“错误”,与404的textStatus相同。 ,jQuery将'.error'改为'.fail' – dtgq
它是什么,可能会超时?您是否试图在收到响应之前测试Ajax请求是否超时? – nnnnnn
@nnnnnn服务器没有响应,连接丢失等。 – dtgq
*“文档中未提及它”* - 是的,在您链接到的页面中,它告诉您如何指定以毫秒为单位的超时,如果没有收到响应,错误处理程序将被调用状态为“timeout”。 – nnnnnn