Pregunta

Desarrollé una aplicación web usando IE9 y un editor de texto. Lee un archivo JSON, luego llena algunos elementos DIV de acuerdo con ese archivo y la lógica del código JavaScript y jQuery. Bajo IE9, funciona perfectamente.

Bajo Chrome, no ejecuta la declaración $ .getjson (), por lo que no hay datos disponibles. Bajo Firefox, la declaración $ .getJson () aparentemente se ejecuta (los mensajes de alerta testifican esto), pero no lee nada.

El archivo JSON pasa JSONLINT.

Ni Chrome ni Firefox indican ningún error.

Hice un archivo de muestra usando datos JSON del sitio JSON, lo validé a través de JSONLINT, luego ejecuté mi código usando ese archivo. No hay diferencia: el rome todavía ignora la declaración $ .getjson ().

Una sección relevante de mi código:

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

Chrome muestra la primera alerta pero no la segunda.

¿Algunas ideas?

¿Fue útil?

Solución

Puede usar la función de error incorporada para mostrar el error y depurarlo.

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

Esto debería mostrarle el error en la ventana de la consola de Firefox o Chrome (console.log no funcionará en IE y romperá el script). Para levantar la ventana de la consola en Firefox o Chrome Press F12. Si el JSON no funciona, mostrará un error que puede depurar.


Actualizar
También asegúrese de que este código esté en su $(document).ready(). El $ .getjson () puede causar comportamientos inesperados entre los navegadores si lo usa de otra manera.

Otros consejos

¿Se ejecuta esto en un servidor web o solo está abriendo el archivo en un navegador? Si solo está abriendo el archivo, tendrá problemas.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top