我正在提取一些 JSON,在我的其余代码运行之前我需要这些信息。我对 jQuery 很陌生,所以一直在研究 $.when() 并将 AJAX 异步设置为 false(这可能不是最佳选择)。我也有一个问题,我的变量在我的 AJAX 调用之外未定义。这是我的代码 - 任何帮助/建议将不胜感激。
//在进行 AJAX 调用时不显示任何内容(将在此处添加加载微调器)
$('body').css('display','none');
//Ajax调用加载图片
var test = $.ajax({
dataType: "json",
url: "../quiz/scripts/test.json",
success: function() {
console.log("Loaded in AJAX");
var results = test.responseJSON.Items.Pics;
console.log(results);
$('body').css('display','block');
}
});
// 试图检索我的结果变量
console.log("Loaded Outside of AJAX");
console.log(results);
控制台给了我这个:
Loaded Outside of AJAX [VM] quiz.js (23396):18
Uncaught ReferenceError: results is not defined [VM] quiz.js (23396):19
XHR finished loading: "http://localhost:8888/.....etc"
Loaded in AJAX [VM] quiz.js (23396):9
[Object, Object, Object, Object, Object]
如何让文本“在 AJAX 中加载”出现在“在 AJAX 之外加载”之前,以及如何在 AJAX 调用之外使用变量“结果”?