2017-07-24 69 views
0

我有一個Kendo網格,網格中的每一行都有自己的「Review」按鈕。審查按鈕調用上點擊這個Ajax請求:如何在窗口關閉時中止Ajax請求?

function GetReviewForm(submissionId) { 
    $.ajax({ 
     url: "/PSATracking/PSATracking/GetReviewData?subId=" + submissionId, 
     type: "GET", 
     dataType: 'json', 
     cache: false, 
     success: function (data) { 
      $("#RequestStatus").val(data.Data[0].RequestStatus); 
      $("#OrganizationName").val(data.Data[0].OrganizationName); 
      $("#TeamMemberContributesAsBoardMember").val(data.Data[0].TeamMemberContributesAsBoardMember); 
      $("#ContactName").val(data.Data[0].ContactName); 
      $("#ApproveBtn").click(function() { 
       var confirmation = confirm("Are you sure you want to save and approve this request?"); 
       if (confirmation === true) { 
        $.post("/PSATracking/PSATracking/ApproveRequest?sponsorId=" + data.Data[0].SponsorshipRequestId); 
        $("#ApproveRequestWindow").data("kendoWindow").close(); 
        window.location.reload(); 
       } 
      }); 
     } 
    }); 
} 

這Ajax請求將打開一個窗口,它有兩個文本框和一個確認按鈕的頁面上。它將根據發送給此函數的submissionId填充文本框。 Kendo網格中的每一行都有自己的submissionId。

我遇到的問題是,如果我點擊一個查看按鈕,然後關閉彈出的窗口,然後單擊一個不同的查看按鈕,我現在有2個Ajax請求同時運行。因此,如果我要在一個窗口中單擊批准按鈕,它將針對之前打開的每個窗口運行批准按鈕單擊功能。

對不起,如果這真是令人困惑。

基本上,我需要知道的是如何在關閉窗口時結束ajax請求,以便我沒有同時運行多個ajax請求。

回答

0

您可以將ajax調用設置爲一個變量,然後再放棄它。

var t = $.ajax... 

if (window_closed) {//whatever logic you are using to decide to close the window 
    t.abort(); 
}