2012-04-10 249 views
37

是否有可能在另一个Ajax请求中发出ajax请求? ,因为我需要第一个ajax请求中的一些数据来发出下一个ajax请求。Ajax请求中的jQuery Ajax请求

首先,我使用Google Maps API获取LAT & LNG,之后我使用该LAT & LNG请求Instagram API(基于搜索的位置)。

再一次,这是可能的,如果是的话如何?

$('input#search').click(function(e){ 
    e.preventDefault(); 
    var source=$('select[name=state] option:selected').text()+' '+$('select[name=city] option:selected').text()+' '+$('select[name=area] option:selected').text(); 
    var source=source.replace(/ /g, '+'); 
    if(working==false){ 
     working=true; 
     $(this).replaceWith('<span id="big_loading"></span>'); 
     $.ajax({ 
      type:'POST', 
      url:'/killtime_local/ajax/location/maps.json', 
      dataType:'json', 
      cache: false, 
      data:'via=ajax&address='+source, 
      success:function(results){ 
       // this is where i get the latlng 
      } 
     }); 
    } else { 
     alert('please, be patient!'); 
    } 
}); 
+6

是其可能 – Ved 2012-04-10 13:12:06

+1

你可以发布你到目前为止的代码。 – 2012-04-10 13:15:04

+0

我编辑了我的问题,代码高于 – 2012-04-10 13:20:01

回答

57

下面是一个例子:

$.ajax({ 
     type: "post", 
     url: "ajax/example.php", 
     data: 'page=' + btn_page, 
     success: function (data) { 
      var a = data; // This line shows error. 
      $.ajax({ 
       type: "post", 
       url: "example.php", 
       data: 'page=' + a, 
       success: function (data) { 

       } 
      }); 
     } 
    }); 
+0

您确定这是最佳做法吗?我的朋友认为我应该使用一个标志变量,并使用一个setInterval函数在 – whamsicore 2016-02-02 02:23:44

+1

之外检查它,这可能也是一个解决方案,但这需要更少的努力和更容易。 – Tarek 2016-02-03 04:29:45

+3

我无法表达这个答案对我来说是多么有帮助,试图在获得成功的过程中发表一篇文章。 – Bruce 2016-09-24 04:50:56

1

这仅仅是一个例子。您可能希望按照您的要求对其进行定制。

$.ajax({ 
     url: 'ajax/test1.html', 
     success: function(data1) { 
     alert('Request 1 was performed.'); 
     $.ajax({ 
     type: 'POST', 
     url: url, 
     data: data1, //pass data1 to second request 
     success: successHandler, // handler if second request succeeds 
     dataType: dataType 
    }); 
    } 
}); 

有关详细信息:请参见this

7

试试这个

var dt=''; 
    $.ajax({ 
    type: "post", 
    url: "ajax/example.php", 
    data: 'page='+btn_page, 
    success: function(data){ 
       dt=data; 
       /*Do something*/ 
      }, 
    complete:function(){ 
      $.ajax({ 
      var a=dt; // This line shows error. 
      type: "post", 
      url: "example.php", 
      data: 'page='+a, 
      success: function(data){ 
       /*do some thing in second function*/} 
      }, 

    }); 
}); 
0
$.ajax({ 
    url: "<?php echo site_url('upToWeb/ajax_edit/')?>/" + id, 
    type: "GET", 
    dataType: "JSON", 
    success: function (data) { 
     if (data.web == 0) { 
      if (confirm('Data product upToWeb ?')) { 
       $.ajax({ 
        url: "<?php echo site_url('upToWeb/set_web/')?>/" + data.id_item, 
        type: "post", 
        dataType: "json", 
        data: {web: 1}, 
        success: function (respons) { 
         location.href = location.pathname; 
        }, 
        error: function (xhr, ajaxOptions, thrownError) { // Ketika terjadi error 
         alert(xhr.responseText); // munculkan alert 
        } 
       }); 
      } 
     } 
     else { 
      if (confirm('Data product DownFromWeb ?')) { 
       $.ajax({ 
        url: "<?php echo site_url('upToWeb/set_web/')?>/" + data.id_item, 
        type: "post", 
        dataType: "json", 
        data: {web: 0}, 
        success: function (respons) { 
         location.href = location.pathname; 
        }, 
        error: function (xhr, ajaxOptions, thrownError) { // Ketika terjadi error 
         alert(xhr.responseText); // munculkan alert 
        } 
       }); 
      } 
     } 
    }, 

    error: function (jqXHR, textStatus, errorThrown) { 
     alert('Error get data from ajax'); 
    } 

}); 
+0

只是一个例子,我用...并且工作... – 2017-07-30 02:59:56