您好我的ajax响应处理有问题
我有一个全局函数调用(),它会调用ajax并返回json响应:
function call(request_url,params) {
$.post(request_url,params,function(response) {
return response;
},'json');
}
之后我有一个使用全局函数的对象GetServices call()
var GetServices = {
service_url:"http://xxx.com/req.php",
getCurrency:function() {
var resp = call(this.service_url,{act:'getCurrency'});
return resp;
}
}
我希望 GetServices.getCurrency()返回ajax响应,但它返回undefined。 Javascript为其分配值 undefined ,然后完成ajax调用。
请帮我解决这个问题。
答案 0 :(得分:0)
此模式无效,因为在设置resp
变量时调用仍在执行,因此resp
始终为null
。
另一种方法是将委托函数传递给call
函数以在$.post
成功时运行,或将$.post
更改为同步$.ajax
调用。
答案 1 :(得分:0)
它的异步调用...... 因此,它将进行呼叫并恢复其处理。在拨打电话后,您将获得某个值。这取决于各种因素。例如,服务器的响应时间。
最简单的方法是从$.post()
的成功处理程序中调用目标函数(要将此ajax值传递给的函数)
例如
function call(request_url,params) {
$.post(request_url,params,function(response) {
yourTargetFunction(response); // instead of returning the value from this
},'json');
}