2017-09-24 15 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は実行されておらず、直接toSendEmail()関数の呼び出しを行っています。 私は見ていましたが、関数内で関数を作成してみました。 誰かが私にそれを実行する別の方法を提案することはできますか?またはコントローラコールをSendEmail()メソッドに渡す前にAjaxCall2を実行するために何を変更する必要がありますか?

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

答えて

1

toSendEmail()が中に入る必要があるありがとう。

それ以外の場合は、2番目のajax呼び出しが返される前に実行されます。あなたは正しく、最初の成功ハンドラで2番目のajaxコールを呼び出しています。今度は2番目のajaxコールの成功ハンドラの中に最終ステップを入れるだけです。

+0

私はそれを試してみましょう。 5分 –

+0

私はコードを編集しました。実行されていますが、ループと関数が4回実行されるために問題があります。ユーザーは一度に4つのメールを取得しています。役に立った.. –

関連する問題