2011-01-20 31 views
3

JQueryのgetJSON関数で2回のAJAX呼び出しを実行する必要があります。JQuery getJSonネストされた呼び出しが機能しない

これは、呼び出しが実行されるとすぐに2番目の呼び出しでパラメータとして最初の呼び出しの結果が必要なため、2番目のgetJSON関数をすぐに呼び出す必要があるということです。 (私はFirebugののコンソールを使ってこれをデバッグ)、それがトリガされません

$.getJSON("/Traslados/ObtenerCedulas", { Param1: $("#Param1").val(), Param2: $("#Param2").val() }, function (j) { 
     $("#Result1").val(j); 
     $.getJSON("/Traslados/ObtenerLogins", { Param3: $("#Param3").val(), Param4: $("#Result1").val() }, 
       function (k) { 
         alert(k); 
         $("#Result2").val(k); 
     }); 
}); 

2回目の呼び出しが正しく行われていると予想される結果を与えているが、問題は、次のとおりです。

私のコードは次のようになります警告、さらには最悪の場合、kの値をResult2入力フィールドに設定しません。

何が起こっているか

答えて

0

私がここで問題として見ることのできることの1つは、最初の呼び出しが成功するか失敗するかに関わらず、2番目のgetJSON呼び出しが発生していることで、#Result1が実際に正しく設定されたかどうかを知る方法はありません。あなたがgetJSONのAPIドキュメントを見れば

http://api.jquery.com/jQuery.getJSON/ それはあなたが常にいくつか行わ/失敗/レスポンスのハンドリングの種類を持っているように、あなたの第一getJSONを構築する方法を紹介します。

メモリが役立つ場合、これはあなたの全面的な問題ではありません。私は、順番に発生しなければならないajax呼び出しを行う必要があるとき、私は以前は呼び出しをキューに入れてデキューしました。

<html> 
<header> 
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js" ></script> 
<script> 
    function fakey_not_ajax(message, callback) { 
    alert (message); 
    callback(); 
    } 
    function queue_my_stuff(kick_it_off_callback) { 
    $(document).queue("mydemo_queue", function(){ 
     fakey_not_ajax("show me first", function() { 
     $(document).dequeue("mydemo_queue"); 
     }); 
    }); 
    $(document).queue("mydemo_queue", function(){ 
     fakey_not_ajax("show me second", function() { 
     $(document).dequeue("mydemo_queue"); 
     }); 
    }); 

    kick_it_off_callback(); 
    } 
    function push_the_button() { 
    alert ("pushed"); 
    queue_my_stuff(
     function(){ 
     $(document).dequeue("mydemo_queue"); 
     } 
    ); 
    } 
</script> 
</header> 
<body> 
Try this 
<a href="#" onclick="push_the_button();">Push Me</a> 
</body> 
</html> 
キューイングの簡単な例
関連する問題