我试图从网站下载并显示API数据。这里是我目前使用的代码:如何从API中提取和显示数据?
function loadJSON(file, callback) {
var xobj = new XMLHttpRequest();
xobj.overrideMimeType("application/json");
xobj.open('GET', file, true);
xobj.onreadystatechange = function() {
if (xobj.readyState == 4 && xobj.status == "200") {
callback(xobj.responseText);
}
};
xobj.send(null);
}
var outerSpace;
loadJSON("http://api.open-notify.org/astros.json", gotData);
function gotData(data) {
outerSpace = data;
}
if (outerSpace) {
console.log(outerSpace.people.name);
}
这是完整的API(没有太多)。
{
"number": 3,
"message": "success",
"people": [
{
"name": "Peggy Whitson",
"craft": "ISS"
},
{
"name": "Fyodor Yurchikhin",
"craft": "ISS"
},
{
"name": "Jack Fischer",
"craft": "ISS"
}
]
}
不应该console.log输出“Peggy Whitson”?我没有收到错误消息,但控制台没有收到消息。如果有人能帮我找到解决办法,我将不胜感激。谢谢!
第一,删除if语句,所以你可以看到,如果你有来自服务器的404或500错误: [IF(xobj.readyState == 4 && xobj.status == “200”){ callback(xobj.responseText); }] – Abiezer
另外'people'是一个数组,所以你不能直接调用'people.name'。使用'outerSpace.people [0] .name'获取名字。 –
@Abiezer没有错误信息。 –