JQuery getJSon 嵌套调用不起作用

标签 jquery nested call getjson

我需要通过 JQuery 的 getJSON 函数执行两次 AJAX 调用。

问题是,一旦执行其中一个调用,我需要立即调用第二个 getJSON 函数(因为我需要第一个调用的结果作为第二个调用中的参数)。

我的代码如下所示:

$.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);
       });
 });

问题是,虽然第二个调用正确执行并给出了预期结果(我使用 Firebug 的控制台调试了它),但它不会触发警报,更糟糕的是,它没有设置 k 值添加到我的 Result2 输入字段。

发生了什么事?

最佳答案

我在这里看到的一个问题是,无论第一个调用成功还是失败,您的第二个 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>

关于JQuery getJSon 嵌套调用不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4748574/

相关文章:

r - 以编程方式确定函数调用是指您自己的函数还是包的(或基础 R 的)函数?

android - 在android中流式传输通话语音?

include - Fortran 'call' 与 'include'

javascript - 无法使用普通的 JQuery/Javascript 检索输入字段的值

javascript - 如何将动画应用于元素直到滚动到它?

jquery - $(这个+"selector")? $ ("img",这个)可能吗?

python - 如何遍历其中包含 3 个以上字典子级别的字典

jquery - 拥有 'position:fixed'(始终位于顶部)div 的最简单的 jQuery 方法是什么?

javascript - 在 JavaScript 中嵌套 if else

c# - 在 C# 中搜索嵌套列表 <> 的最快方法