2017-09-24 68 views
-1

我正在嵌套Ajax調用,這裏是代碼:嵌套Ajax調用沒有得到執行

function getCheckListId() { 
var authToken = getCookie("aqs_authToken"); 
//Lets say AjaxCall1 
$.ajax({ 
.... 
// Basic Ajax definition (type, url, etc.....) 
.... 

success: function (result) { 
for (var i=0; i< result.length;i++) // ForLoop AjaxCall1 
{ 
var sample= result[i].checklistDetailId; 

// Lets say AjaxCall2 
$.ajax({ 
    url: 'URL' +sample 
    // Code for Another Ajax Call 
    success: function(result) { 

    for(var i=0; i<result1.length; i++) { { ... Some code.. } 
     } // END ForLoop AjaxCall2 

    toSendEmail(); 
    // This is function call in which I am posting data (AjaxCall3) 
     }, // Success Function close for AjaxCall2 

    error: function(error) {.. some code.. } 
    } // Error function close for AjaxCall2 
    } 
    }); // Close of AjaxCall2 

    }, // Success Function close for AjaxCall1 
    error: function (error) { 
    alert("Some Statement"); 
     } // Error Function Close for AjaxCall1 


    }); 

}

我在AjaxCall1' 成功製作功能AjaxCall2。但我的AjaxCall2沒有得到執行,它直接調用函數發送電子郵件() 我環顧四周,我試着像函數內函數(嵌套函數)使我的ajax調用執行,但仍然無法正常工作。 任何人都可以建議我任何其他方式來執行它?或者我需要改變以讓我的AjaxCall2執行BEFORE控制器調用sendEmail()方法?

謝謝

回答

1

toSendEmail()需求裏面去:

success: function(result) { ... Some code.. },

否則它會在你的第二個Ajax調用返回之前運行。您在第一個成功處理程序中正確調用第二個ajax調用,現在您只需將最後一步放入第二個Ajax調用的成功處理程序中。

+0

讓我試試吧。 5分 –

+0

我爲你編輯的代碼..它正在執行,但問題是它的內部循環和函數執行4次,所以用戶一次獲得4封郵件..如果你可以讓路,那將是有用的.. –