$ .getJson () работает в IE9, но не в Chrome и Firefox, что не так в моем коде?

StackOverflow https://stackoverflow.com/questions/8371570

Вопрос

Я разработал веб -приложение с помощью IE9 и текстового редактора. Он считывает файл JSON, затем заполняет некоторые элементы DIV в соответствии с этим файлом и логикой кода JavaScript и jQuery. Под IE9 он работает отлично.

При Chrome он не выполняет оператор $ .getJson (), поэтому данные не доступны. При Firefox оператор $ .getJson (), по -видимому, запускает (предупреждающие сообщения свидетельствуют об этом), но он ничего не читает.

Файл JSON проходит JSONLINT.

Ни хром, ни Firefox не указывают никаких ошибок.

Я сделал образец файла, используя данные JSON с сайта JSON, проверил его через JSONLint, а затем запустил мой код, используя этот файл. Нет разницы-хром все еще игнорирует заявление $ .getjson ().

Соответствующий раздел моего кода:

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

Chrome отображает первое оповещение, но не второе.

Любые идеи?

Это было полезно?

Решение

Вы можете использовать функцию встроенной ошибки, чтобы отобразить ошибку и отладить ее.

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

Это должно показать вам ошибку в окне консоли Firefox или Chrome (Console.log не будет работать в IE и нарушать сценарий). Чтобы поднять окно консоли в Firefox или Chrome Press F12. Анкет Если JSON не работает, он покажет ошибку, которую вы можете отладить.


Обновлять
Также убедитесь, что этот код находится в вашем $(document).ready(). Анкет $ .Getjson () может вызвать неожиданное поведение в разных браузерах, если их использовать.

Другие советы

Это работает на веб -сервере или вы просто открываете файл в браузере? Если вы просто открываете файл, у вас будут проблемы.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top