这个问题类似于另一个问题,只是那个问题是在JQuery的上下文中提出的,而我不使用它。 我的页面上的Ajax代码每十秒发出一次POST请求。偶尔会出现这样的情况——大约每600个请求一次——我的客户端代码挂起等待永远不会出现的响应。代码将超时并重新发出Ajax请求,但首先我想清理有关未完成请求的所有内容:我不想留下任何残留状态以后会混淆事情。取消未完成的请求的正确方法是什么,以便事情得到适当的整理?谢谢!
在开始下一个 AJAX 请求之前,请存储对上一个请求的引用并使用abort()方法取消它。 例如: var lastRequest; setInterval(function() { lastRequest.abort(); // abort the last request lastRequest = new XMLHTTPRequest(); // and the rest of your XHR code }, 10000);