$.getJSON("../../index.php/churchlocator/base", function(data) {
base_url = data.base;
});
alert(base_url);如何使上述代码中的base_url在getJSON var之外可访问?
发布于 2013-10-23 03:22:17
正确的答案是将引用ajax调用结果的所有代码放在ajax调用的成功处理程序中。不要为此使用全局变量:
$.getJSON("../../index.php/churchlocator/base", function(data) {
var base_url = data.base;
alert(base_url);
// or you may call some other function here and pass it the data
myFunction(base_url);
}); Ajax调用是“异步的”(这就是Ajax中的A所代表的)。这意味着它们在将来某个时候完成,而您的其他javascript则继续运行。当他们完成后,他们将调用他们的成功处理程序。因此,知道什么时候从Ajax调用返回数据的唯一方法是在成功处理程序中放置代码对返回的数据进行操作,或者从该成功处理程序调用函数并将数据传递给它。
这是异步编程,如果程序具有任何类型的异步功能,则必须使用此模型。不能对异步函数调用使用传统的顺序编程。
https://stackoverflow.com/questions/19532139
复制相似问题