如何有效地链接 3 个 ajax 调用,其中一个 ajax 调用为其他两个 ajax 调用提供源?



我正在尝试找到链接 3 个 ajax 调用的有效方法,其中一个 ajax 调用馈送其他两个 ajax 调用。 这是斯卡纳里奥:


//Invoke the ajax calls
firstAjax('mypage.gng','john-doe').then(secondAjax, thirdAjax).done(function(second_ajax_data, third_ajax-data) {
console.log(second_ajax_data);
console.log(third_ajax-data);
});
//Define our ajax calls
const firstAjax = function(urlAjax, userName) {
return $.ajax({
url: urlAjax,
type: 'POST',
data: userName
)};
const secondAjax = function(sessionId) {
return $.ajax({
url: '/userLogins/getUserLogins',
type: 'POST',
data: sessionId
)};
const thirdAjax = function(sessionId) {
return $.ajax({
url: '/userHistory/getUserHistory',
type: 'POST',
data: sessionId
)};

基本上,第一个 Ajax调用检索sessionId,然后同时将其提供给其他2 个 ajax 调用。通过上面的实现,我无法获取最后两次调用返回的数据。 我将不胜感激任何帮助

我认为这样的事情可能会起作用:

function send_ajax_request(data){
$.ajax({
url: "yoururl",
type: "GET",
dataType: "json",
data: {
data: data,
csrfmiddlewaretoken: '{{ csrf_token }}'
},
success: function (json) {
next_ajax(json['success']);
},
error: function (xhr, errmsg, err) {
alert("Could not send URL to Django. Error: " + xhr.status + ": " + xhr.responseText);
}
});

}

function next_ajax(data){
$.ajax({
url: "yoururl",
type: "GET",
dataType: "json",
data: {
coord: JSON.stringify({ "info": data[0], "info2": data[1] }),
csrfmiddlewaretoken: '{{ csrf_token }}'
},
success: function (json) {
console.log(json)
},
error: function (xhr, errmsg, err) {
alert("Could not send URL to Django. Error: " + xhr.status + ": " + xhr.responseText);
}
});

}

基本上,使用 Ajax 的成功函数来调用下一个 Ajax 请求。应该工作!

最新更新