如何使用Prototype JS库中止/取消请求?

15

使用以下代码:

var pendingRequest =  new Ajax.Request(myUrl, {
               method: 'post',
               postBody: soapMsg,
               contentType: "text/xml",
               onSuccess: function(transport) {
                    doSomething(transport);
               },
               onFailure: function(t) {
                    OnAjaxFailure(t);
               },
               onException: function(req,exception) { 
                    OnAjaxException(req, exception);          
               } 

            }); 

如何取消请求并丢弃数据?如果无法实现,我该如何在onSuccess方法中识别请求(使用名称/ GUID /其他方式),以便我可以告诉哪个请求正在完成?
我考虑使用array.push(pendingRequest)来跟踪挂起的请求。
我想允许用户打断他们的请求,更改输入值并重新提交。
有时,原始请求在新请求之后结束,我正在用“旧”数据替换“正确”的数据。(例如,搜索结果在第一次查询返回50,000条记录,在第二次查询返回5条)
谢谢。
2个回答

22

你可以使用XHR的abort方法。

XHR对象存储在pendingRequest.transport中,因此可以使用

pendingRequest.transport.abort()

将会取消请求。


2

1
那是一个非常老的链接。 - Nasaralla
原型本身就很老了。链接失效了吗?或者链接中提供的方法不起作用? - llamerr
链接正常。我在一年前使用过这些方法,并且效果很好。我希望现在仍然有效。 - Mat

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接