对于jQuery AJAX调用(http://api.jquery.com/jQuery.getJSON/),我们使用.fail()
回调来记录JavaScript错误。
然而,.fail()
函数似乎也会被调用,当调用尚未完成时,会通过离开网站而中止(但是,由于有时有足够的时间触发window.onerror
),跟踪仍然有效。
现在,跟踪中止的AJAX请求是我们不想要的。我们想知道请求是否有效(即响应)。
是否有可能区分"AJAX调用中止“和”无响应的AJAX调用“?
发布于 2013-10-23 09:23:51
的确有。fail
处理程序接收三个参数:jqXHR
、textStatus
和errorThrown
。对于中止的请求,textStatus
将等于"abort"
,因此您可以用
$.getJSON(...).fail(function(xhr, status) { if (status == "abort") ... });
如果您对进一步的筛选感兴趣,其他可能的值是"notmodified"
、"error"
、"timeout"
和"parsererror"
。
https://stackoverflow.com/questions/19537725
复制相似问题