Domanda

Ho sviluppato un'applicazione Web utilizzando IE9 e un editor di testo. Legge un file JSON, quindi riempie alcuni elementi Div in base a quel file e alla logica del codice JavaScript e JQuery. Sotto IE9, funziona perfettamente.

Sotto Chrome, non riesce a eseguire la dichiarazione $ .getjson (), quindi non sono disponibili dati. Sotto Firefox, l'istruzione $ .getjson () apparentemente esegue (i messaggi di avviso testimoniano a questo), ma non legga nulla.

Il file JSON passa JSONLINT.

Né Chrome né Firefox indicano errori.

Ho realizzato un file di esempio utilizzando i dati JSON dal sito JSON, l'ho validato tramite JSONLINT, quindi ho eseguito il mio codice utilizzando quel file. Nessuna differenza-Chrome ignora ancora la dichiarazione $ .getjson ().

Una sezione pertinente del mio codice:

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

Chrome visualizza il primo avviso ma non il secondo.

Qualche idea?

È stato utile?

Soluzione

È possibile utilizzare la funzione di errore integrata per visualizzare l'errore e eseguire il debug.

$(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

Ciò dovrebbe mostrarti l'errore nella finestra della console di Firefox o Chrome (Console.log non funzionerà in IE e romperà lo script). Per visualizzare la finestra della console in Firefox o Chrome Press F12. Se il JSON non funziona, mostrerà un errore che puoi eseguire il debug.


Aggiornare
Assicurati anche che questo codice sia nel tuo $(document).ready(). $ .Getjson () potrebbe causare comportamenti inaspettati tra i browser se lo usi in altri.

Altri suggerimenti

È in esecuzione su un server Web o stai solo aprendo il file in un browser? Se stai solo aprendo il file avrai problemi.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top