AJAX GET не работает с локальным файлом JSON? - PullRequest
2 голосов
/ 30 января 2012

У меня был URL JSONP, который извлекал данные и просто переключился на локальный файл JSON, и теперь я получаю ошибки. Я не понимаю, почему он не работает с локальным файлом JSON?

<script type="text/javascript">
    $.ajax({
        type : 'GET',
        dataType : 'json',
        url: '/json/topics.json',
        success : function(data) {
            console.log(data); 
            var topics = [];
            $.each(data.results, function(index, obj){
                topics.push({
                    username: obj.TopicName,
                    mentions: obj.LastHourCount,
                    totalcount: obj.TotalCount,
                    daycount: obj.Last24HoursCount
                }); 
            });
            $('#leader').tmpl(topics).appendTo('#top3');
        } 
    });
</script>

В консоли говорится, что AJAX является анонимной функцией по какой-то причине? Есть предложения?

1 Ответ

2 голосов
/ 30 января 2012

$.ajax асинхронный, и похоже, что вы пытаетесь изменить DOM при загрузке страницы, добавьте

async: false,

к вашим $.ajax параметрам. Обратите внимание, что это может замедлить загрузку страницы.

Пример:

 $.ajax({
    type : 'GET',
    dataType : 'json',
    async: false,
    // rest of your code

См. Этот пост, если вы используете локальные файлы, а не через веб-сервер, и получаете сообщение об ошибке Origin null is not allowed by Access-Control-Allow-Origin:

Ошибка: «Нулевой источник не разрешен Access-Control-Allow-Origin» при загрузке XML-файла с помощью метода JQuery ajax

...