嵌套Ajax调用未执行

时间:2017-09-24 23:47:34

标签: javascript jquery ajax model-view-controller

我正在进行嵌套的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&#39;成功的功能。但我的AjaxCall2没有被执行它直接调用函数toSendEmail() 我环顾四周,尝试在函数内部执行函数(嵌套函数),使我的ajax调用执行但仍无法正常工作。 任何人都可以建议我执行它的任何其他方式吗?或者我需要更改以在控制器调用toSendEmail()方法之前执行AjaxCall2?

谢谢

1 个答案:

答案 0 :(得分:1)

需要进入

toSendEmail()

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

否则它将在您的第二个ajax调用返回之前运行。您正在第一个成功处理程序中正确调用第二个ajax调用,现在您只需将最后一步放在第二个ajax调用的成功处理程序中。