2017-06-06 90 views
-2

我需要按顺序运行2个AJAX。第一个AJAX只会在页面加载时调用一次。第二个AJAX将在第一个AJAX被调用或用户单击页面上的某些按钮后调用。按顺序运行AJAX

我写了以下内容,但每次调用第二个AJAX时都会调用第一个AJAX。

var GetFirstAJAX = function() { 
    var deferred = $.Deferred(); 
    $.ajax({ 
    ... 
    success: deferred.resolve(); 
    error: deferred.reject(); 
    ... 
    }); 
    return deferred.promise(); 
}; 

//Second AJAX 
$.when(GetFirstAJAX()).then(function() 
{ 
    $.ajax({ 
    ... 
    }); 
}); 
+0

呼叫第二阿贾克斯第一个1是您可以阅读更多关于链接承诺的信息https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/then#Chaining – iamdevlinph

回答

1

您可以只运行在done方法的第二个AJAX可以在第一AJAX被捆绑,像这样:

// first ajax 
 
$.ajax({ 
 
    // .. ajax details 
 
}).done(function(res){ 
 
    // res is the result of the first ajax 
 
    // do something with it (e.g console.log) or call second ajax call 
 
    $.ajax({ 
 
    // .. second ajax details 
 
    }).done(function(res2) { 
 
    // .. the rest of logic 
 
    }) 
 
})