原来这是一个 Firebug 错误的产物。 Ajax 请求已取消,但 Firebug 继续将其报告为事件状态。详情 here .
我长时间运行 XMLHttpRequests,我需要能够在某些情况下中止它们。
我以正常方式设置请求:
ajax = $.getJSON(url + "?updates", function(data) { ...; });
稍后我想中止这个请求,看起来很简单:
ajax.abort();
但是,当我查看 Firebug 时,我发现它仍在运行...
在我尝试并中止它之前,我控制台注销了 ajax 的值,它确认它的值是 XMLHttpRequest(readyState 为 0)。
对于如何以及何时在 XMLHttpRequest 上触发 abort() 是否有限制?
最佳答案
Calling abort resets the object; the onreadystatechange event handler is removed, and readyState is changed to 0 (uninitialized).
我不认为它会取消请求本身,它只是忽略任何响应(操纵事件处理程序)- 但我还没有真正尝试过。
但它绝对允许您重用该对象 - 无论浏览器是否仍有一些线程处理旧请求。
关于javascript - 中止 jQuery getJSON XMLHttpRequest,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1287971/