2015-08-12 4 views
0

Я использую $ .getJSON для загрузки файла JSON. Файл загружается успешно (я могу видеть его содержимое в Firebug ниже заголовка, который гласит: «GET http://siteinfo/data/library.json 304 не изменен»). Однако, если я пытаюсь использовать console.log или предупреждение внутри функции успеха она не работает):jquery getJSON функция не работает

$.getJSON('data/library.json', function(data){ 
    alert('HERE'); 
    console.log(data); 
    $.each(data.library, function(k,v){ 
     console.log(k + "/" + v); 

    }); 
}); 

Ни одно из предупреждений или console.logs не работают. Что я могу делать неправильно?

+2

Вы получаете какую-либо ошибку в консоли? – Manwal

+0

ничего :(Все, что я вижу, это "не GET HTTP: //site/data/library.json \t 304 Not Modified \t \t 189ms" – cesarcarlos

ответ

0

Вы получаете 304 код статуса. Вот почему ответ, не входящий в success, функционирует так, как это происходит в функции error, потому что error - это функция, которая вызывается, если запрос терпит неудачу.

С серверной стороны что-то не так. Читайте Why am I getting "(304) Not Modified" error on some links when using HttpWebRequest? для более подробной информации.

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

+0

На этот раз я получаю. оповещение с содержимым Json.Но почему это не удается? – cesarcarlos

+0

Извините, что это значит, как я могу это изменить? – cesarcarlos

+0

Посмотрите на обновленный ответ. – Manwal

0

Я думаю, что это проблема с кэшированием, вы могли бы попробовать сделать свой запрос, как это, поворачиваясь кэширование выключено

$.ajax({ 
     dataType: "json", 
     type: "get", 
     url: 'data/library.json', 
     cache:false, 
     success: function(data){ 
     alert('HERE'); 
     console.log(data); 
     $.each(data.library, function(k,v){ 
     console.log(k + "/" + v); 
     }); 
     } 
    }); 
+0

попробовал это, но это не сработало – cesarcarlos

Смежные вопросы