2017-02-26 68 views
0

這是我第一次使用AJAX,我確定其他人有這個錯誤,但經過大量的嘗試和搜索後我找不到答案。我相信這很簡單。我會很感激任何幫助。當記錄AJAX/JSON請求時,Console.log語句顯示爲undefined

// create variable for JSON request 
var ourRequest = new XMLHttpRequest(); 

// get request for tested JSON link 
ourRequest.open('GET', 'http://api.fixer.io/latest'); 
ourRequest.onload = function() { 
    var ourData = JSON.parse(ourRequest.responseText); 
    console.log(ourData[1]); 
}; 

ourRequest.send(); 
+0

所以它顯示爲未定義,當我運行在眉毛呃並檢查控制檯。我使用Chrome –

+1

api返回一個對象'{「base」:「EUR」,「date」:「2017-02-24」,...'而不是數組。 - > [MDN:使用對象](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Working_with_Objects),[fiddle](https://jsfiddle.net/17x5cgfb/) – Andreas

+0

這是一個跨源請求嗎?什麼是'.responseText'?什麼是'.status'?什麼是'ourData'(而不是'ourData [1]')? – Bergi

回答

0

ourData是一個JavaScript對象,而不是一個數組。

我認爲ourData[1]你想要得到的日期,所以不是你需要做的ourData.dateourData['date']

// create variable for JSON request 
 
var ourRequest = new XMLHttpRequest(); 
 

 
// get request for tested JSON link 
 
ourRequest.open('GET', 'https://api.fixer.io/latest'); 
 
ourRequest.onload = function() { 
 
    var ourData = JSON.parse(ourRequest.responseText); 
 
    console.log(ourData['date']); 
 
    console.log(ourData.date); 
 
}; 
 

 
ourRequest.send();

+0

非常感謝您的幫助! –

+0

我知道那是不正確的 –

0

由於respoonse是使用JSON這樣你就可以使用下面的代碼和使用任何你喜歡的方式

var ourRequest = new XMLHttpRequest(); 

// get request for tested JSON link 
ourRequest.open('GET', 'http://api.fixer.io/latest'); 
ourRequest.onload = function() { 
    var ourData = JSON.parse(ourRequest.responseText); 
    console.log(ourData['date']); 
    console.log(ourData.date); //or you can write in this format 
    console.log(ourData['base']); 
    console.log(ourData.base); 
    console.log(ourData['rates']); 
    console.log(ourData.rates); 
    console.log(ourData['rates']['AUD']); 
    console.log(ourData['rates'].AUD); 
}; 

ourRequest.send(); 
相關問題