我的问题可能很吵,但我实际上找不到答案。
我想在特定的ajax上使用abort()方法。但是我总是使用request = $。ajax ...来处理我的所有请求和request.abort()取消所有我的ajax,只有我想要的那个。
有没有办法通过命名它或其他东西指向正确的? 这是我的代码
request.abort();
request = $.ajax({
url: "getphp/gettooltip.php",
type: "GET",
data: {db : db, id : url.substring(url.lastIndexOf('=')+1)},
dataType: "JSON"
});
request.done(function(msg){
d3lttFillInTooltip(msg,db)
$('#d3ltttooltipdiv').css('visibility','visible');
});
在运行这个ajax之前,我绝对需要取消同一个ajax的最后一次调用。
欢迎任何帮助:)
答案 0 :(得分:0)
为每个jqXHR对象使用不同的变量。
答案 1 :(得分:0)
您需要更改代码,这样您才不会为每次调用分配request=$.ajax({...});
。您需要某种列表或请求映射。如何实现这取决于您何时需要中止请求。例如,如果您只想拥有一堆请求,以便可以轻松中止最后一个请求,那么您可以执行以下操作:
var requests = [];
requests.push($.ajax({
// request 1
...
}));
requests.push($.ajax({
// request 2
...
}));
requests.push($.ajax({
// request 3
...
}));
requests.pop().abort(); //aborts request 3
// or...
requests.shift().abort(); //aborts request 1
如果这对您没有帮助,请提供有关何时需要中止请求的详细信息。底线 - 如果您希望能够定位特定请求,请不要对您所做的每个ajax请求设置请求。