Javascript jQueryAjax——将数据返回到调用函数
我已经编写了一个简单的通用ajax函数,可以由脚本中的多个函数调用。我不确定如何将返回到ajax函数的数据返回给调用者Javascript jQueryAjax——将数据返回到调用函数,javascript,jquery,Javascript,Jquery,我已经编写了一个简单的通用ajax函数,可以由脚本中的多个函数调用。我不确定如何将返回到ajax函数的数据返回给调用者 // some function that needs ajax data function myFunction(invoice) { // pass the invoice data to the ajax function var result = doAjaxRequest(invoice, 'invoice'); console.dir(res
// some function that needs ajax data
function myFunction(invoice) {
// pass the invoice data to the ajax function
var result = doAjaxRequest(invoice, 'invoice');
console.dir(result); // this shows `undefined`
}
// build generic ajax request object
function doAjaxRequest(data, task) {
var myurl = 'http://someurl';
$.ajax({
url: myurl + '?task=' + task,
data: data,
type: 'POST',
success: function(data) {
console.dir(data); // this shows good data as expected
return data; // this never gets back to the calling function
}
});
}
有没有办法将ajax数据返回给调用函数?
$。ajax
是异步的,因此为了返回数据,您需要将回调传递给doAjaxRequest
函数。我在doAjaxRequest
中添加了一个回调参数,处理响应的代码位于回调函数中,而不是使用doAjaxRequest
的结果
// some function that needs ajax data
function myFunction(invoice) {
// pass the invoice data to the ajax function
doAjaxRequest(invoice, 'invoice', function (result) {
console.dir(result);
});
}
// build generic ajax request object
function doAjaxRequest(data, task, callback) {
var myurl = 'http://someurl';
$.ajax({
url: myurl + '?task=' + task,
data: data,
type: 'POST',
success: function(data) {
console.dir(data); // this shows good data as expected
callback(data);
}
});
}
我认为这个例子对你完全有帮助
function testAjax() {
var result="";
$.ajax({
url:"getvalue.php",
async: false,
success:function(data) {
result = data;
}
});
return result;
}
function fun2()
{
alert(testajax())
}
您注意到一件异步的事情:false否。在AJAX调用启动之前,调用函数已经运行完毕。你可以让它同步。。。但是这不是AJAX。他不能将一个(可能是匿名的)回调函数传递给
doAjaxRequest
函数,然后从成功闭包调用它吗?@TheZ--废话--现在很明显了。谢谢你帮我提了个愚蠢的问题@KevinBoucher他可以,但这不会将其作为返回传递回调用函数。这将是一个回调。@Z:同意,但这可能是解决他整个问题的一个办法。