中止jQuery getJSON XMLHttpRequest

Gor*_*rie 12 javascript jquery getjson

原来这是一个Firebug bug的人工制品.Ajax请求被取消,但Firebug继续将其报告为活动状态.细节在这里.


我一直在运行XMLHttpRequests,我需要能够在某些情况下中止它们.

我以正常方式设置请求:

ajax = $.getJSON(url + "?updates", function(data) { ...; });
Run Code Online (Sandbox Code Playgroud)

后来我想中止这个请求,看起来很简单:

ajax.abort();
Run Code Online (Sandbox Code Playgroud)

然而,当我看着Firebug时,我发现它仍在运行......

我在尝试中止它之前就调试了ajax的值.它确认它的值是和XMLHttpRequest(readyState为0).

对abh()在XMLHttpRequest上的触发方式和时间有限制吗?

Nik*_*iko 2

调用 abort 会重置对象;onreadystatechange 事件处理程序被删除,readyState 更改为 0(未初始化)。

我不认为它会取消请求本身,它只是忽略任何响应(操作事件处理程序) - 但我还没有真正尝试过。

但它绝对允许您重用该对象 - 无论浏览器是否仍然有一些线程处理旧请求。