两个ajax调用的jQuery回调

时间:2019-02-18 16:22:46

标签: jquery ajax

我想在click事件中进行两个Ajax调用。每个ajax调用都会执行不同的操作,并返回最终回调所需的数据。第一个调用是onload事件,该事件返回一个搜索表单,该表单具有从api生成的ID。此api返回搜索表单没有问题。调用本身是相互依赖的,最后一个调用只能使用第一个调用的结果。我得到的错误是f没有定义。

$(document).ready(function() {

    var searchForm = (function() {

        $.ajax({
         async: true;
            //"code"// 
        data.map(function(f)) {
         return <input id=f.Datafield>
         }
        });
    });



    $("#btn").on("click", function(event) {

     event.preventDefault();

     var id = searchForm($("#" + f.DataField));

    $.ajax({ 
    URL= "api" + id
     async:true;
    });
});
searchForm()
}

1 个答案:

答案 0 :(得分:0)

Ajax请求是异步的。您要么需要将第一个请求用作承诺,要么将async标志设置为false。

$(document).ready(function() {
 let res = $.ajax({
   ...
   async: false
 });
 // do whatever you want with res

或作为承诺:

$(document).ready(function() {
 $.ajax({
   ...
 }).then(function(data, textStatus, jqXHR) {
     //the request was a success
     // read the doc here : http://api.jquery.com/jquery.ajax/
     console.log(data)
 }, function(jqXHR, textStatus, errorThrown) {
     //the request failed
     // read the doc here : http://api.jquery.com/jquery.ajax/
}))