【发布时间】:2011-03-09 21:23:15
【问题描述】:
为了使我的 jQuery 代码模块化,即可重用,我在另一个函数 fetch_ajax() 中放置了一个 ajax() 函数。我正在尝试使用其他地方的参数调用fetch_ajax(),应该只需运行包含的ajax() 并返回响应。
但这并没有发生 - 相反,fetch_ajax() 显然太快地向调用者返回 false,并且没有等到 ajax() 完成请求并得到响应。
代码如下:
fetch_ajax() 函数
function fetch_ajax(url) {
$.ajax({
type: 'GET',
url: url,
success: function(response) {
return response;
}
});
}
调用函数:
function caller() {
response = fetch_ajax('script.php');
alert(response); //this is always 'undefined'
}
在fetch_ajax() 中,我尝试不直接从ajax() 中返回response,而是将其写入一个变量,并在ajax() 之后返回该变量——这也不起作用(结果相同) .
当我在ajax() 函数内部的return response; 之前放置第二个警报时,我看到在caller() 内部的一个火灾之后。所以我在想,不知何故,fetch_ajax() 在返回 false 之前不会等待包含的函数执行。
我做错了什么?
谢谢。
【问题讨论】:
标签: jquery