是否有可能使用 jQuery,我取消/中止 Ajax 请求我还没有收到回复?
大多数 jQuery Ajax 方法都会返回 XMLHttpRequest (或等效的)对象,因此您可以使用abort()
.
请参阅文档:
-
中止方法 http://msdn.microsoft.com/en-us/library/ms535920%28VS.85%29.aspx (MSDN http://en.wikipedia.org/wiki/Microsoft_Developer_Network)。取消当前的 HTTP 请求。
-
abort() https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/abort (MDN http://en.wikipedia.org/wiki/Mozilla_Developer_Network)。如果请求已经发送,此方法将中止该请求。
var xhr = $.ajax({
type: "POST",
url: "some.php",
data: "name=John&location=Boston",
success: function(msg){
alert( "Data Saved: " + msg );
}
});
//kill the request
xhr.abort()
UPDATE:从 jQuery 1.5 开始,返回的对象是名为 jqXHR 的本机 XMLHttpRequest 对象的包装器。该对象似乎公开了所有本机属性和方法,因此上面的示例仍然有效。看jqXHR 对象 http://api.jquery.com/jQuery.ajax/#jqXHR(jQuery API 文档)。
更新2:从 jQuery 3 开始,ajax 方法现在返回带有额外方法(如 abort)的承诺,因此上面的代码仍然有效,尽管返回的对象不是xhr
不再有。请参阅3.0博客在这里 http://blog.jquery.com/2016/01/14/jquery-3-0-beta-released/.
UPDATE 3: xhr.abort()
仍然适用于 jQuery 3.x。不要假设update 2是正确的。有关 jQuery Github 存储库的更多信息 https://github.com/jquery/jquery/issues/2084#issuecomment-308173243.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)