2010-10-09 14 views
19

Ich schreibe eine Web-App (gut, tatsächlich wird es schließlich ein OS X Dashboard-Widget, aber ich entschied, es zuerst als eine einfache Webseite Prototyp), die einige laden müssen Initialisieren von Daten aus einer lokalen JSON-Datei. Mein Code sieht wie folgt aus:Wie lade ich lokale JSON-Dateien in Javascript

function loadDatos() { 
    var xobj = new XMLHttpRequest(); 
    xobj.overrideMimeType("application/json"); 
    xobj.open('GET', 'datos.json', true); 
    xobj.onReadyStateChange = function() { 
     if (xobj.readyState == 4) { 
      var jsonTexto = xobj.responseText; 
      ProcessTheData(jsonTexto); 
     } 
    } 
    xobj.send(null); 
} 

Die Funktion von einem Ereignis onLoad() in der HTML-Datei des BODY-Tag aufgerufen. Nun, was ich beim Debuggen sehe, wird die Funktion ausgeführt, aber der Ereignishandler onReadytStateChange wird nie aufgerufen.

Was soll ich tun? Ich fand es etwas merkwürdig, eine XMLHttpRequest für den Zugriff auf eine lokale Datei zu verwenden, aber die neuen Tutorials, die ich mit diesem Thema behandle, scheinen zu sagen, dass es funktionieren sollte (die 99% der Dokumente, die ich gesehen habe, sprechen darüber um JSON von einem entfernten Server zu laden, nicht von einer lokalen Datei).

Ich teste Firefox 3.6.10, aber ich habe mit Safari auch versucht 4.

+2

Aus diesem Grunde wurde ich für die Möglichkeit einer Zuordnung Klausel eindrücken einer JSON-Objekt Erklärung vorangestellt im Jahr 2005 vor allem der verschiedenen JSON Programmiersprache Kunden stürzten auf eine Ad-hoc-Standardisierung: http: //web.archive.org/web/20060212113746/htmatters.net/htm/1/2005/07/evaling-JSON.cfm –

+0

Sie wollen Anwendung/json, aber wenn die Datei lokal ist, wird es nicht diesen Mime-Typ haben . Versuchen Sie, die Überschreibung zu kommentieren – mplungjan

Antwort

Verwandte Themen