Sunucuya ajax çağrısı yapmak için genel bir işlevi çağıran javascript işlevi var. Ajax çağrısının geri arama işlevinden bir sonuç (doğru/yanlış) almam gerekir, ancak elde ettiğim sonuç her zaman 'tanımsız' olur.Tanıtımı geri alma açık Arayan Fonksiyon döndürme değerini döndürme değeri
tüm bulunmayan genel işlevinin bir süper basitleştirilmiş versiyonu benim mantık olacaktır:
function CallServer(urlController) {
$.ajax({
type: "POST",
url: urlController,
async: false,
data: $("form").serialize(),
success:
function(result) {
if (someLogic)
return true;
else
return false;
},
error:
function(errorThrown) {
return false;
}
});
}
Ve gibi bir şey olurdu çağıran işlevi:
function Next() {
var result = CallServer("/Signum/TrySave");
if (result == true) {
document.forms[0].submit();
}
}
"sonuç" değişkendir her zaman 'tanımsız' ve hata ayıklama geri çağırma işlevinin "geri dönüşü" satırının yürütülmekte olduğunu görebiliyorum.
Bunun neden olduğuyla ilgili herhangi bir fikir var mı? Kabarcık, geri arama işlevinden CallServer işlevine dönüş değerini nasıl yapabilirim? Genellikle herhangi bir kod koymak
Teşekkür
Şerefe, bu sizin için çalışıyor olabilir, ancak öngörülemeyen bir koddur, çünkü büyük olasılıkla, async POST değerini belirlemeden önce CallServer'dan "returnValue" döndürecektir. Kural Kuralı: Eşzamanlı sarıcılarda eşzamansız çağrıları sarmalamayın! –
, asenkronize çağrılarda beklemenin bir yolu için $ 'a bakabilirsiniz. Http://api.jquery.com/jQuery.when/ – Andbdrew