我正在尝试从 JSON 文件访问数据,但控制台的结果是未定义
。
GET 响应很好,该功能可以工作,但我不知道如何访问响应。
function AJAX_JSON_Req(url) {
var AJAX_req = new XMLHttpRequest();
AJAX_req.open("GET", url, true);
AJAX_req.setRequestHeader("Content-type", "application/json");
AJAX_req.onreadystatechange = function() {
if(AJAX_req.readyState == 4 && AJAX_req.status == 200){
return JSON.parse(AJAX_req.responseText);
}
};
AJAX_req.send();
}
var q = AJAX_JSON_Req('questions.json');
console.log(q); //undefined
最佳答案
请记住,这是一个异步函数。尝试使用回调,看看是否会更成功。
function AJAX_JSON_Req(url, callback) {
var AJAX_req = new XMLHttpRequest();
AJAX_req.open("GET", url, true);
AJAX_req.setRequestHeader("Content-type", "application/json");
AJAX_req.onreadystatechange = function() {
if(AJAX_req.readyState == 4 && AJAX_req.status == 200){
callback(JSON.parse(AJAX_req.responseText));
}
};
AJAX_req.send();
}
AJAX_JSON_Req('questions.json', function (q) {
console.log(q);
});
关于javascript - 使用 vanilla JavaScript 将 JSON 数据存储在变量中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27045214/