2016-04-25 88 views
-2

我有很多從許多js文件調用ajax請求。我想檢測一些Ajax請求來中斷執行並執行一個更新的請求。 我可以檢測並停止與他們的網址ajax?獲取或檢測到一個ajax請求正在執行url

我會非常感謝任何幫助,我可以獲得。

回答

1

這裏是代碼改編自this post。這是未經測試的,但應該給出這個想法。它將xhr調用與URL一起填充到數組中,然後再根據URL調用它們以殺死它們。

var url = "some.php", 
    xhr_global = []; 

var jqxhr = $.ajax({ 
    type: "POST", 
    url: url, 
    data: "name=John&location=Boston", 
    success: function(msg){ 
     alert("Data Saved: " + msg); 
    } 
}); 

xhr_global.push({xhr: jqxhr, url: url}); 

function kill_url(url_pick){ 

    for(var i=0; i<xhr_global.length; i++){ 
     if (xhr_global[i].url == url_pick)  // If url matches, kill xhr 
      xhr_global[i].xhr.abort(); 
    } 

} 

kill_url("some.php");  // Call function to kill the xhrs 

請注意,正如帖子所言,這會在客戶端而不是服務器端殺死進程。

+0

謝謝你的回答。這是如果我有權訪問ajax的聲明。但是,如果我沒有訪問他的聲明並且只有url,我該怎麼做 – mister

+0

如果你沒有權限訪問ajax的聲明(例如,你不能保存jqxhr的承諾),那麼我不相信你可以停止Ajax通話。 –

+0

謝謝你的回答。這是非常有用的,但我必須中止一個由我的電腦調用的Ajax,我無法訪問代碼。 – mister