$.getJSON("../../index.php/churchlocator/base", function(data) {
base_url = data.base;
});
alert(base_url);
如何在上面的代碼中獲取base_url以便在getJSON var之外訪問?在jQuery語句之外訪問javascript變量
$.getJSON("../../index.php/churchlocator/base", function(data) {
base_url = data.base;
});
alert(base_url);
如何在上面的代碼中獲取base_url以便在getJSON var之外訪問?在jQuery語句之外訪問javascript變量
這裏的正確答案是將引用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調用返回的唯一方法是將代碼放入成功處理程序中,以便對返回的數據進行操作,或者通過調用該成功處理程序中的函數並將其傳遞給數據。
這是異步編程,如果您使用任何類型的異步功能編程,您必須使用此模型。您不能使用傳統的順序編程與異步函數調用。
如何在我的腳本的其他部分訪問base_url? –
@MichaelGrigsby - 請閱讀我已添加到我的答案。您必須編寫異步代碼。你不能使用傳統的同步編程。 – jfriend00
非常多,包括我的回調中使用base_url的所有東西? –
嘗試在$ .getJSON上面聲明var base_url – iJade
嘿michael發佈了一個答案 – iJade
可能重複[如何從AJAX調用返回響應?](http://stackoverflow.com/questions/14220321/how-to- return-the-an-ajax-call) – bfavaretto