我有搜索这么多的问题,但没有得到正确的答案。我从我的研究中得出以下函数,我明白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