对于jQuery AJAX调用(http://api.jquery.com/jQuery.getJSON/),我们使用.fail()
回调来记录JavaScript错误。
然而,看起来.fail()
功能也会被呼叫,当呼叫尚未完成时,但是已中止离开网站(跟踪仍然有效,但是,因为有有时足够的时间使window.onerror
被触发)。
现在,跟踪中止的AJAX请求并不是我们想要的。我们想知道请求是否有效(即响应)。
是否有可能区分“AJAX呼叫中止”和“没有响应的AJAX呼叫”?
答案 0 :(得分:2)
有。 fail
处理程序收到三个参数:jqXHR
,textStatus
和errorThrown
。对于已中止的请求,textStatus
将等于"abort"
,因此您可以使用
$.getJSON(...).fail(function(xhr, status) { if (status == "abort") ... });
如果您对进一步过滤感兴趣,其他可能的值包括"notmodified"
,"error"
,"timeout"
和"parsererror"
。