我有搜索這麼多的問題,但沒有得到正確的答案。我從我的研究中得出以下函數,我明白ajax調用是異步的,因此它將值傳遞給全局變量並返回,但是我得到一個空白或未定義的值。我可以用$('#someid' ).html作爲迴應或其他一些方法,但我不想實現它們。任何知道我做錯了這裏調用Ajax並返回響應
function SimpleAjax(form, postData, url)
{
var returnData;
var sendData;
if (form == "") {
sendData = postData;
}
else if (postData == "") {
sendData = $(form).serialize();
}
$.ajax({
type: 'POST',
url: url,
cache: false,
data: sendData,
success: function(data)
{
if (data != null || typeof data != 'undefined') {
returnData = data;
}
}
}).done(function(data) {
returnData = data;
});
return returnData;
}
Ajax是異步的,所以'returnData'將不會設置,直到它完成。調用'SimpleAjax()'將始終返回undefined,因爲在函數返回之前ajax請求不會完成。使用回調。 – jeremyharris
正如@jeremyharris剛纔所說的那樣,您不能返回響應數據,因爲它正在異步檢索。 – Austin