【问题标题】:Nested Ajax Call not getting executed [duplicate]嵌套的 Ajax 调用未执行 [重复]
【发布时间】:2017-09-24 23:47:33
【问题描述】:

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

谢谢

【问题讨论】:

    标签: javascript jquery ajax model-view-controller


    【解决方案1】:

    toSendEmail()需要进去:

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

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

    【讨论】:

    • 让我试试。 5 分钟
    • 我为你编辑了代码。它正在执行,但问题是它的内部 for 循环和函数被执行了 4 次,所以用户一次收到 4 封邮件。如果你可以让位那会很有帮助的..
    猜你喜欢
    • 1970-01-01
    • 2020-06-11
    • 1970-01-01
    • 2014-12-09
    • 1970-01-01
    • 1970-01-01
    • 2020-04-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多