2016-04-03 14 views
1

Ekranın sol tarafında birkaç menü öğesi var, her biri sitede yeni bir sayfa açar. Sayfalardan birinde, bir grup veriyi başarıyla döndüren python'a async ajax çağrısı var. Ancak, bu sayfayı açtığımda ve ajax isteğinin tamamlanmasını beklemeden başka bir sayfa açmak için başka bir menü öğesini tıklattığımda, bir [Nesne nesnesi] hatası alıyorum.Yeni bir web sayfasını açarken ajax isteği nasıl kesilir?

postData = {"userid":userid, "current":dict_current, "step":dict_step}; 

$.ajax({ 
    url: "/cgi-bin/get_dictionary.py", 
    type: "post", 
    datatype:"json", 
    async : true, 
    data: {postData}, 
    success: function(response){ 
     //parse json 
     var json = $.parseJSON(response); 
    } 
}) 
.fail(function(err) { 
    alert("error" + err); //[Object object] 
}); 

Ben de yeni bir sayfa açtığınızda ben bir şekilde isteği iptal etmelidir, tahmin ediyorum, ama bunu nasıl istek erişebilirim?

Burada yapılacak en iyi şey nedir? Ajax isteğiniz için bir değişken adı ekleyin

+0

http://stackoverflow.com/questions/446594/abort -Jaax-request-using-jquery – GillesC

cevap

1

. , önce değişkeni tanımlar.

ajaxreq = $.ajax(...); 

ve sayfa unload o ajax iptal:

var ajaxreq; 

sonra ajax isteği için bu değişken kullanabilirsiniz

$(window).unload(function() { 
    ajaxreq.abort(); 
}); 
+1

boşaltma çalışmadı, ama 'window.onbeforeunload = function() {ajaxreq.abort();}; did'. Teşekkürler! Ama dürüstçe, en kolay çözüm, hatayı bildirmemek. Soru, performans söz konusu olduğunda sorun değil mi? – erdomester

İlgili konular