我試圖從網站下載並顯示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沒有錯誤信息。 –