Использование jQuery для разбора RSS-канала, проблемы с Firefox и Chrome

Я использовал библиотеку jQuery под названием jFeed для анализа и отображения RSS-канала блогов на моем личном веб-сайте. Сначала он работал очень хорошо, но после проверки он просто ничего не отображает, кроме Internet Explorer, где, кажется, он работает нормально.

После проверки консоли javascript с помощью Firebug в Firefox, она показывает ошибку на вкладке "XML" следующим образом:

Ошибка синтаксического анализа XML: элемент не найден Расположение: moz-nullprincipal:{3f8a0c62-32b4-4f63-b69c- 9ef402b40b64} Строка № 1, столбец 1: ^

Хотя я понятия не имею, что делать с этой информацией. Вот код, который я использовал, чтобы получить RSS-канал и отобразить его (он почти такой же, как в примере, представленном на веб-сайте jFeed):

jQuery.getFeed ({url: ' http://sammarshalldesign.co.uk/blog/wordpress/?feed=rss2', success: function (feed) {

        var html = '';

        for(var i = 0; i < feed.items.length && i < 5; i++) {

            var item = feed.items[i];

            html += '<h3>'
            + '<a href="'
            + item.link
            + '">'
            + item.title
            + '</a>'
            + '</h3>';


            html += '<div>'
            + item.description
            + '</div>';
        }//end for

        jQuery('#feed').append(html);
    }//end feed function    
});//end getfeed

Любая помощь могла бы быть полезна.

3 ответа

Решение

В качестве альтернативы, Google действительно предоставляет API фида. Воспользуйтесь этим плагином Google Feed, который делает весь процесс довольно простым (не требуется php).

Я обнаружил, что это трудный путь, но в отличие от Internet Explorer, Firefox не допускает междоменные XML-запросы без какой-либо аутентификации с сервера, на который вы попали. Вам нужно использовать либо JSON (с помощью которого вы можете выполните межсайтовый / междоменный запрос в jQuery) или создайте какой-либо прокси-сервер для своего XML-канала локально, а затем нажмите на него запросом jQuery.

Вы пытаетесь загрузить канал RSS с другого домена? Если так, это не сработает. jFeed поставляется с примером PHP-прокси, который вы можете разместить на своем сервере и вызвать. Или вы можете использовать Yahoo! Трубы для получения данных в формате JSON.

Другие вопросы по тегам