3 回答

TA貢獻(xiàn)1804條經(jīng)驗 獲得超7個贊
這樣做:
var json = (function () {
var json = null;
$.ajax({
'async': false,
'global': false,
'url': my_url,
'dataType': "json",
'success': function (data) {
json = data;
}
});
return json;
})();
主要問題是$.getJSON它將異步運行,因此,即使在其success回調(diào)觸發(fā)之前,您的Javascript也會經(jīng)過調(diào)用它的表達(dá)式之后,因此無法保證您的變量將捕獲任何數(shù)據(jù)。
請?zhí)貏e注意'async': false上述ajax調(diào)用中的選項。該手冊說:
默認(rèn)情況下,所有請求都是異步發(fā)送的(即默認(rèn)情況下設(shè)置為true)。如果需要同步請求,請將此選項設(shè)置為false。請注意,同步請求可能會暫時鎖定瀏覽器,從而在請求處于活動狀態(tài)時禁用任何操作。

TA貢獻(xiàn)1829條經(jīng)驗 獲得超9個贊
代碼位應(yīng)為:
var my_json;
$.getJSON(my_url, function(json) {
my_json = json;
});
- 3 回答
- 0 關(guān)注
- 418 瀏覽
添加回答
舉報