例如我有一个功能:
var f1 = function(arg) {
var a;
$.ajax({
...
success: function(data) {
a = f2(data);
//return a;
}
});
//return a;
}
var f3 = function() {
a = f1(arg);
}
我怎样才能返回a
AJAX后得到data
的f1
?
因为请求是异步的,所以您无法返回ajax请求的结果(而同步ajax请求是一个 糟糕的 主意)。
最好的选择是将自己的回调传递给f1
var f1 = function(arg, callback) {
$.ajax({
success: function(data) {
callback(data);
}
});
}
然后,您将f1
像这样致电:
f1(arg, function(data) {
var a = f2(data);
alert(a);
}
);
问题内容: 我在使用Ajax时遇到问题。 问题是,在获得ajax响应之前,它会返回cnt。因此它总是返回NULL。 有没有办法使正确的返回响应值? 谢谢! 问题答案: 由于AJAX请求是异步的,因此您的cnt变量将在请求返回并调用成功处理程序之前返回。 我建议重构您的代码以解决此问题。 一种方法是从AJAX请求的成功处理程序中调用调用了GetGrantAmazonItemCnt()的任何函数,此方
请参考:http://www.kancloud.cn/manual/thinkphp/1719
问题内容: 我试图在我自己的函数中使用jQuery ajax调用的返回值,但它始终返回未定义的值。 ajax调用绝对有效,因为当我取消注释警报时,我得到了正确的返回,并且可以在firebug中看到它。我在做蠢事吗? 问题答案: AJAX调用是异步的-这意味着AJAX请求是按常规程序执行顺序发出的,并且在您的程序中这意味着不会将数据返回警报。 您不能以这种方式使用调用的返回值,而是将利用AJAX返回
问题内容: 我正在尝试使用Ajax从服务器获取信息。页面xxx.php是仅写入123的页面。但是,当我想返回该页面的内容时,它返回null。 问题答案: 请注意,ajax是“异步的”。因此,在myFunct()完成执行时,可能尚未收到对服务器调用的响应。您可以将处理来自服务器调用的数据的逻辑放在ajax的“成功”中。
使用ajaxReturn方法返回JSON格式或者XML格式数据 $data['a'] = 'www'; $data['b'] = 'vvvc'; $this->ajaxReturn($data); //默认返回JSON格式数据
问题内容: 我正在为网站进行股票交易所jQuery修复。 编辑:它根据返回的值更新网页上的ID / CLASS或输入值。 index.php: 目前它正在返回: 我也尝试过使用.text()将其返回到div demo.json: 请有人能告诉我我做错了什么。 提前致谢! 问题答案: 你可以这样做: 所以这里的主要问题是: 正如ajax一样,您需要执行ajax成功回调中的所有逻辑,并且始终会获得&变