$ .getJson () работает в IE9, но не в Chrome и Firefox, что не так в моем коде?
-
27-10-2019 - |
Вопрос
Я разработал веб -приложение с помощью 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 () может вызвать неожиданное поведение в разных браузерах, если их использовать.
Другие советы
Это работает на веб -сервере или вы просто открываете файл в браузере? Если вы просто открываете файл, у вас будут проблемы.