У меня есть особое требование для вложенных вызовов ajax.Я пытаюсь установить глобально доступную переменную внутри успеха одного вызова ajax, и этот вызов ajax вызывается внутри успеха другого вызова ajax.В конце концов, родительский метод успеха родительского вызова ajax использует глобальную переменную для выполнения дальнейших операций.Проблема в том, что значение глобальной переменной всегда остается пустым.Это работает, если я сделаю второй AJAX-запрос async: false;но это решение в первую очередь противоречит самой цели использования ajax.
Позвольте мне поделиться небольшим примером кода, чтобы проиллюстрировать мою проблему:
//global variables
var xURL = "https://sampleurl.com";
var glblID = "";
//first ajax call
$.ajax({
url: url1,
data: data1,
type: "POST",
contentType: "application/json",
success: function (msg) {
//some js code here
//second ajax call
FetchID();
//more js code here
if(glblID != "")
{
window.location.href = xURL + "?id=" + glblID
}
else
{
window.location.href = xURL;
}
}
});
function FetchID()
{
$.ajax({
url: url2,
data: data2,
type: "POST",
contentType: "application/json",
success: function (data) {
glblID = data.d;
}
});
}