Frage

Ich habe eine Webanwendung mit IE9 und einem Texteditor entwickelt. Es liest eine JSON -Datei und füllt dann einige Divelemente gemäß dieser Datei und der Logik des JavaScript- und JQuery -Code. Unter IE9 funktioniert es perfekt.

Unter Chrome kann die Anweisung $ .getJson () nicht ausgeführt werden, sodass keine Daten verfügbar sind. Unter Firefox läuft die $ .getJson () -Anweisung anscheinend aus (Alarmnachrichten bezeugen dies), aber sie liest nichts.

Die JSON -Datei übergibt JsonLint.

Weder Chrom noch Firefox deuten auf Fehler hin.

Ich habe eine Beispieldatei mit JSON -Daten von der JSON -Site erstellt, sie über JSONLINT validiert und meinen Code mit dieser Datei ausgeführt. Kein Unterschied-Chrome ignoriert immer noch die $ .getJson () -serklärung.

Ein relevanter Abschnitt meines Codes:

    function buildTree(centralID) {
      alert("Can we start, at least?");
     $.getJSON('sample.json', function(data) {
      alert("first success");
      $.each(data.person, function(i, xdata) {

Chrome zeigt den ersten Alarm, aber nicht die zweite.

Irgendwelche Ideen?

War es hilfreich?

Lösung

Sie können die integrierte Fehlerfunktion verwenden, um den Fehler anzuzeigen und ihn zu debuggen.

$(document).ready(function(){ // Make sure your jQuery is inside this
$.getJSON("sample.json", function(data) {
    alert('Point 1 Reached.');
    console.log(data); // Here we log to our console
    $.each(data.feed.entry, function(i, item) {
             // Do your stuff here
        }); // End of $.each

// Here Success, Completed & Error do something. chained onto $.getJSON
        }).success(function() { alert("success"); })
          .error(function(jqXHR, textStatus, errorThrown) { // Debug the error!!
                    console.log("error " + textStatus);
                    console.log("error throw " + errorThrown);
                    console.log("incoming Text " + jqXHR.responseText);
                }) // End of .error
          .complete(function() { alert("complete"); });
        });
}); // End of DOM Ready

Dies sollte Ihnen den Fehler im Konsolenfenster von Firefox oder Chrome zeigen (Console.log funktioniert nicht im IE und brechen das Skript). Um das Konsolenfenster in Firefox- oder Chrompresse zu erhöhen F12. Wenn der JSON nicht funktioniert, zeigt er einen Fehler, den Sie debuggen können.


Aktualisieren
Stellen Sie außerdem sicher, dass dieser Code in Ihrem liegt $(document).ready(). Das $ .Getjson () kann zu unerwarteten Verhaltensweisen hinweg in Browsern führen, wenn sie es unter anderen Wegen verwenden.

Andere Tipps

Läuft dies auf einem Webserver oder öffnen Sie die Datei nur in einem Browser? Wenn Sie nur die Datei öffnen, haben Sie Probleme.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top