2016-07-01 24 views
0

Ich versuche, eine externe JSON-Datei zu einer Var mit jquery's getJSON() zuweisen. In meiner JSON-Datei habe ich den gleichen genauen Code wie für outp. Wenn ich versuche, console.log, was in den Daten var ist, es nur show readyState1. Das bedeutet, dass ich mit dem Server verbunden bin, aber warum geht die Anfrage nicht weiter? Hier ist mein Code:JSON-Datei lädt nicht mit jquery .getJSON()

<!DOCTYPE html> 
<html> 
<head> 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.2/jquery.min.js"></script> 
<script type="text/javascript"> 
$(document).ready(function() { 
    var url = "content.json" 
    var outp = { 
        low   : 0, 
        high  : 99, 
        name  : "Fritz", 
        rufnummer : "012", 
        faxnummer : "345", 
        mobil  : "678", 
        mail  : "[email protected]", 
       } 

    $('#find').on("click", function(){ 

     var data = $.getJSON(url); 

     console.log(data); 
     console.log(outp); 
     console.log("Hi"); 

    }); 
}); 
</script> 
</head> 
<body> 
    <p>Postleitszahl:</p> 
    <input type="number" autocomplete="on" name="inp" id="inp"> 
    <button type="button" id="find">Finden</button> 
    <p class="output"></p> 
</body> 
</html> 

Antwort

0

Die Methode $ .getJSON führt einen asynchronen Aufruf durch, dh Sie erhalten die empfangenen Daten nicht als Rückgabewert. Um die Antwort auf zugreifen, die vom Server gesendet werden, benötigen Sie einen Rückruf registrieren:

$.getJSON(url, function(data) { 
     console.log(data); 
     //do what you need to do with your data here 
}); 

Referenzen diese

+0

Dank hilft für die Hilfe http://api.jquery.com/jquery.getjson/

Hope, ich die Änderungen vorgenommen haben, aber Jetzt zeigt mein console.log nichts! Die varr-Daten sind jetzt, was mein Objekt von json halten sollte, oder? – Niqql

+0

richtig. Die definierte Funktion wird nur bei Erfolg der Anfrage aufgerufen. Im Falle von "getJSON" bedeutet "Erfolg der Anfrage", dass die Antwort gültig ist und die Antwort auch die Überschrift "Content-Type: application/json" enthalten sollte. Weitere Informationen zum Debuggen finden Sie im Referenzlink, insbesondere im Abschnitt "Das jqXHR-Objekt". –

0

$.getJSON asynchron läuft. In Ihrem aktuellen Code versuchen Sie, auf Daten zuzugreifen, bevor die Anfrage abgeschlossen wurde.

Sie müssen den Erfolgsrückruf verwenden, um auf die Antwort zuzugreifen.