取消对象中的ajax请求

时间:2016-02-05 11:56:09

标签: jquery ajax abort

我有一个写在对象中的ajax请求,我需要编写一个取消这个特定请求的函数。我已经查看了中止方法,但不知道如何让它以这种方式工作。

getItems: function(categoryID, format, numberOfResults, types, sortBy, searchString){
    var url = host+"getItems?categoryID="+categoryID+"&format="+format+"&numberOfResults="+numberOfResults+"&types="+types+"&sortBy="+sortBy+'&fileName='+searchString;
    return $.ajax({
        type:"get",
        dataType:"html",
        url: url,
        success:function(data){
            resItems = data;
        },
        error: function(data){
            console.log(data);
        }
    });
},

我遇到的问题是在调用某些元素时调用此函数,如果用户快速连续点击两个元素,我需要在启动下一个请求之前取消此请求。

该页面有多个ajax请求,所以我无法全部取消,但需要专门取消这个。

对象的结构如下:

var items: {
    getItems: function(){
    },
    getItemInfo: function(){
    }
}

等等。

我想做的是根据请求URL定位ajax请求并取消它,是否可以从外部函数中获取?

1 个答案:

答案 0 :(得分:1)

因为getItems正在返回XMLHttpRequest,所以它应该像

一样简单
resp = items.getItems(params)
resp.abort()