我正在调用一个发送ajax GET请求的函数,但是我无法检索到响应。
function testfunc(account_seq, customer, dtype, dnumber) {
var ret;
if(dtype === "phone") {
var x = $.ajax({
url : '/url',
type: "GET",
data: {
"action": "get",
"seq": account_seq,
"customer": customer,
"id": id || '',
},
dataType: 'json',
});
x.done(function(data) {
ret = data;
});
}
return ret;
}
我也曾尝试在return data;
内添加x.done
,但似乎什么也没有返回。
我看到网上有人说过要在.done
内调用另一个函数
function callback(data) {
// do work here
}
我不确定是否缺少某些内容,但是当我调用testfunc
函数时,该如何调用回调函数,或者我不需要这样做?
答案 0 :(得分:0)
您要尝试做的是调用一个函数以获取异步操作的结果。 $.ajax
是jQuery.ajax
的简写,它执行异步HTTP(Ajax)请求。
AJAX = A 同步的 J avaScript A 和 X ML。
代码的问题是您试图以同步的方式获取异步请求的结果。
知识是理解的基础,这就是为什么我鼓励您阅读以下文章:JavaScript Goes Asynchronous (and It’s Awesome),因为在这里您会找到许多有关异步编程的答案,以及可以使用(回调,承诺,异步等待)。