$.getJSON("../../index.php/churchlocator/base", function(data) {
base_url = data.base;
});
alert(base_url);
如何在上面的代码中获取可以在 getJSON var 外部访问的 base_url?
最佳答案
这里的正确答案是将所有引用 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 调用返回的唯一方法是在成功处理程序中放置代码以对返回的数据进行操作,或者从该成功处理程序调用函数并向其传递数据。
这是异步编程,如果您使用任何类型的异步功能进行编程,则必须使用此模型。您不能将传统的顺序编程与异步函数调用结合使用。
关于javascript - 在 jQuery 语句之外访问 javascript 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19532139/