我正在进行嵌套的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?
谢谢
答案 0 :(得分:1)
toSendEmail()
:
success: function(result) { ... Some code.. },
。
否则它将在您的第二个ajax调用返回之前运行。您正在第一个成功处理程序中正确调用第二个ajax调用,现在您只需将最后一步放在第二个ajax调用的成功处理程序中。