2017-02-26 2 views
0

Dies ist das erste Mal, dass ich AJAX verwendet habe, ich bin sicher, dass andere Leute diesen Fehler hatten, aber nach vielen Versuchen und Suchen kann ich die Antwort nicht finden . Ich bin mir sicher, dass es etwas Einfaches ist. Ich würde mich über jede Hilfe freuen.Console.log-Anweisung zeigt undefined beim Protokollieren einer AJAX/JSON-Anfrage

// 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

So zeigt es sich als undefiniert, wenn ich in die Brauen laufe er und überprüfen Sie die Konsole. Ich benutze Chrome –

+1

Die API gibt ein Objekt '{" Basis ":" EUR "," Datum ":" 2017-02-24 ", ...' und kein Array zurück. -> [MDN: Arbeiten mit Objekten] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Working_with_Objects), [fiddle] (https://jsfiddle.net/17x5cgfb/) – Andreas

+0

Ist es eine ursprungsübergreifende Anfrage? Was ist "AntwortText"? Was ist "Status"? Was ist 'unsereDaten' (nicht' unsereDaten [1] ')? – Bergi

Antwort

0

ourData ist ein JavaScript-Objekt und kein Array.

Ich denke, von ourData[1] Sie das Datum erhalten möchten, so stattdessen müssen Sie ourData.date oder ourData['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

Vielen Dank für Ihre Hilfe! –

+0

Ich weiß, was falsch war –

0

tun Da respoonse in Json ist, so dass Sie den folgenden Code verwenden können, und benutze was auch immer du willst

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(); 
Verwandte Themen