如何取消 Ajax 请求? [复制]
Posted
技术标签:
【中文标题】如何取消 Ajax 请求? [复制]【英文标题】:how can I cancel an Ajax request? [duplicate] 【发布时间】:2014-06-15 07:25:05 【问题描述】:在phonegap中如何取消程序中的ajax请求,我想设置取消按钮来控制请求太慢
$.ajax(
type: "GET",
url: url,
success: function(m)
alert( "success");
);
【问题讨论】:
【参考方案1】:将 ajax 请求返回的 promise 接口存储在 global
variable
和 abort
在取消点击时
var result = $.ajax( type: "GET", url: url, success: function(m) alert( "success"); );
$('#cancel').click(function()
result.abort();
);
【讨论】:
你能详细说明一下吗? 您可以将结果存储在global
变量和abort
按钮调用上的请求中
你没有存储结果,你存储的是返回的延迟承诺,它暴露了具有 abort 方法的原生 XMLHttpRequest。
@adeneo 感谢您的纠正。【参考方案2】:
var request= $.ajax( type: "GET", url: url, success: function(m) alert( "success"); );
$('#cancel').click(function()
request.abort();
);
这将中止来自客户端(浏览器)的请求,但请注意:如果服务器已经收到请求,它可能会继续处理请求(取决于服务器的平台),即使浏览器不再监听回应。没有可靠的方法可以让 Web 服务器停止处理正在进行的请求。
【讨论】:
等等,这与已经发布的答案有何不同???编辑:你关于服务器不处理它的话是有趣的想法 我刚刚解释过了。仅此而已。 OP 应该知道实际会发生什么,而不仅仅是如何实现。 是的,编辑了我之前的评论,我非常同意! 我没有提到那种话....:)【参考方案3】:你好,它类似于Abort Ajax requests using jQuery,无论如何这可以帮助你
var ab = $.ajax( type: "GET", url: url, success: function(m) alert( "success"); );
//kill the request
ab.abort()
【讨论】:
以上是关于如何取消 Ajax 请求? [复制]的主要内容,如果未能解决你的问题,请参考以下文章