在就绪函数内部,我正在进行三个Ajax调用,这些调用应该一个接一个地执行
我能够管理这个 第一次和第二次Ajax调用??
我的问题是如何在第二次完成时调用第三次Ajax调用?
$(document).ready(function() {
// First Ajax call
var locationAjaxCall = $.ajax({
type: 'GET',
url: url + '/OMS/oms1/getlocationscreen?screen_ids=' + screen_ids,
jsonpCallback: 'jsonCallback',
cache: true,
dataType: 'jsonp',
jsonp: false,
success: function(response) {
var resp = JSON.stringify(response);
alert(resp);
},
error: function(xhr, ajaxOptions, thrownError) {
}
});
// Second Ajax call
locationAjaxCall.done(function() {
$.ajax({
type: 'GET',
url: url + '/OMS/oms1/fromscratchmodified?screen_ids=' + screen_ids,
jsonpCallback: 'jsonCallback',
dataType: 'jsonp',
jsonp: false,
success: function(response) {
}
});
});
// Third Ajax call
$.ajax({
type: 'GET',
url: url + '/OMS/oms1/fetchcustomerid?UUID=' + qruuid,
jsonpCallback: 'jsonCallback',
dataType: 'jsonp',
jsonp: false,
success: function(response) {
}
});
});
答案 0 :(得分:2)
尝试使用ajax调用的.done()
回调,如下所示: -
$(document).ready(function() {
$.ajax({
// First Ajax call
}).done(function() {
$.ajax({
// Second Ajax call
}).done(function() {
// Third Ajax call
});
});
});
答案 1 :(得分:0)
您可以使用done
(或then
,如果您还想处理失败)功能:
$.ajax({/*...first call...*/
}).done(function() {
$.ajax({/*...second call...*/
}).done(function() {
$.ajax({/*...third call...*/});
});
});
......如果真的很重要,他们会一个接一个地完成。
我认为这不是你所要求的,但是如果你只需要完成所有这三项工作,那么你可以使用$.when
$.when(
$.ajax({/*...first call...*/}),
$.ajax({/*...second call...*/}),
$.ajax({/*...third call...*/})
).then(function() {
// Do the next thing
});
调用将并行运行,并在最后一个调用完成后调用回调。