Поскольку запросы ajax являются асинхронными, вы не можете зависеть от данных, разрешаемых за пределами обратного вызова. Только внутри успешного обратного вызова вы можете убедиться, что данные разрешены.
Вы можете просто сделать один запрос за другим, вложив их, и только после того, как оба они будут разрешены, вы получите доступ к данным:
$("#id_Falla").change(function () {
var url = $("#MatrizForm").attr("data-fi-url");
var FallaId = $("#id_Falla").val();
var url1 = $("#MatrizForm").attr("data-ii-url");
$.ajax({
url: url,
data: {
'Falla': FallaId
},
success: function (frecuencia) {
$.ajax({
url: url1,
data: {
'Falla': FallaId
},
success: function (impacto) {
$("#finherente").val(frecuencia);
$("#iinherente").val(impacto);
$('#minherente').val(frecuencia * impacto);
}
});
}
});
});
Если вы хотите обрабатывать оба запроса одновременно, вы можете использовать Promise.all , поскольку jQuery работает с обещаниями из коробки:
$("#id_Falla").change(function () {
var url = $("#MatrizForm").attr("data-fi-url");
var FallaId = $("#id_Falla").val();
var url1 = $("#MatrizForm").attr("data-ii-url");
Promise.all([
$.ajax({
url: url,
data: {
'Falla': FallaId
},
}),
$.ajax({
url: url1,
data: {
'Falla': FallaId
},
}),
]).then(([frecuencia, impacto]) => {
$("#finherente").val(frecuencia);
$("#iinherente").val(impacto);
$('#minherente').val(frecuencia * impacto);
});
});
В качестве альтернативы рассмотрите возможность использования fetch вместо jQuery s $.ajax
.