Я бы не хотел вкладывать кучу ajax звонков внутри события 'success' друг друга. Мне было интересно, если кто-то может направить меня в правильном направлении, как сделать что-то подобное? Где один ajax вызов зависит от возвращаемого значения другого?
Функция getLoginAccess () будет использоваться во многих других методах аналогичным образом.
Если первый сбой, я бы хотел, чтобы он возвратил «нулевое» значение, которое я могу принять во внимание перед выполнением второго вызова ajax. Ниже я демонстрирую пример того, что я пытаюсь сделать.
Метод getLoginAccess возвращает словарь данных, необходимый для выполнения второго метода createItem . Поэтому, только если getLoginAccess вернет действительные данные, createItem продолжит вызывать фактический ajax вызов.
Спасибо
function getLoginAccess() {
$.ajax({
url: '.../api/v1/auth/access_token',
method: 'POST',
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
'Accept': 'application/json',
'Connection': 'keep-alive'
},
data: {
grant_type: 'client_credentials',
username: 'johnDoe',
password: '******'
},
success: function (data) {
console.log(JSON.stringify(data));
return data;
},
error: function (data) {
console.log(data);
return null;
}
})
}
function createItem() {
var login = getLoginAccess();
if (login == null) {
return false;
}
$.ajax({
url: '.../api/v1',
method: 'POST',
headers = {
'Accept': 'application/json',
'Content-Type': 'application/x-www-form-urlencoded',
'access': `${login.access_token}`
};
data: {},
success: function (data) {
console.log(JSON.stringify(data));
},
error: function (data) {
console.log(data);
}
})
}
window.onload = function(){
createItem();
};