如何取消ajax请求,然后用新参数再次调用它?用我的代码,以前的ajax请求仍然存在。中止长轮询ajax请求并用新参数重新启动请求
var stats_url = '/stats';
var live_stats_ajax_object = $.ajax();
$(".check-round").on("click", function(){
live_stats_ajax_object.abort();
round = $(this).attr('class').split(' ')[0];
get_live_stats(round);
});
var get_live_stats = function(round) {
live_stats_ajax_object = $.ajax({
url: stats_url,
type: "GET",
data: 'live_stats=true' + "&event_id=" + $("#event-list option:selected").val()
+ "&fight_id=" + $('input[name=fightlist]:checked').val()
+ "&round=" + round,
dataType: "json",
timeout: 3500,
complete: function(xhr, textStatus) {
console.log("polling again stats for " + round);
if (textStatus != "abort") {
setTimeout(function() { get_live_stats(round); }, 10000);
}
},
success: function(data) {
console.log("polling and got live stats for " + round);
console.log(data);
}
})
.fail(function() {
console.log("polling failed and couldn't get live stats for " + round);
})
};
我已经在这上好几个小时了。由于
'stats_url'不会出现在'网址进行更新:stats_url'时'get_live_stats(圆形)'叫什么名字? – guest271314 2014-11-20 18:43:20
我不明白你的问题。我已经设置了stats_url – justcode 2014-11-20 18:46:53
如果'settings'对象缓存了以前的请求 - 包括'url'属性后面的'data',那么不确定吗?尝试添加'$ .ajaxSetup({beforeSend:function(jqxhr,settings){console.log(settings.data,settings.url)}})'查看数据''url是否与之前的请求相同? – guest271314 2014-11-20 19:09:32