2017-04-02 127 views
0

我的網站有一個標籤結構。在jquery中處理多個AJAX調用

點擊每個標籤頁,AJAX將被調用,並帶有唯一的URL。
但是,無論何時連續的選項卡被點擊,並且ajax被觸發,該呼叫都會發生錯誤而不是成功。

只有在加載時加載的標籤才能獲取正確的輸出。
在切換選項卡上(如果第一個選項卡的URL獲取大量數據),它將出錯。

我也使用.abort(),但我不認爲它是服務於此目的。
我可能會錯過一些東西。任何人可以提出任何解決方案。下面是我的示例代碼:

$(document).ready(function() { 
    xhr = $.ajax({ 
     url: "www.something.com", 
     type: "GET", 
     cache: true, 
     success: function (response) { 
     alert("successful"); 
     }, 
     error: function (e) { 
      alert("Oops Something went wrong"); 
     } 
    }); 

}); 

$("#stickertab").click(function (e) { 
    appUrl = "www.nothing.com"; 

    $("#show_Sticker").empty(); 
    if (xhr != null) xhr.abort(); 
    xhr = $.ajax({ 
     url: appUrl, 
     type: "GET", 
     cache: true, 
     success: function (response) { 
     alert("successful"); 
     }, 
     error: function (e) { 
      alert(" Oops Something went wrong"); 
     } 
    }); 

}); 

這是我收到的錯誤:

e = Object {readyState: 0, status: 0, statusText: "abort"} 
+1

什麼是錯誤? –

+0

我已更新錯誤詳細信息的代碼 –

回答

2

添加e.preventDefault()給你的函數。

$("#stickertab").click(function (e) { 

    e.preventDefault(); // <-- here 

    appUrl = "www.nothing.com"; 

    $("#show_Sticker").empty(); 
    if (xhr != null) xhr.abort(); 
    xhr = $.ajax({ 
     url: appUrl, 
     type: "GET", 
     cache: true, 
     success: function (response) { 
     alert("successful"); 
     }, 
     error: function (e) { 
      alert(" Oops Something went wrong"); 
     } 
    }); 

}); 
+0

非常感謝。它像魅力一樣工作 –