JQuery XML / RSS Scrape Проблемы - PullRequest
       6

JQuery XML / RSS Scrape Проблемы

0 голосов
/ 08 сентября 2010

Я использую этот скрипт для очистки RSS-канала для просмотра на другом сайте:

$.ajax({
    url: "http://www.thriveafricastore.com/rss.php?type=rss",
    type: "GET",
    success: function(d) {
            $('item', d).each(function() {
                var $item = $(this);
                var title = $item.find('title').text();
                var link = $item.find('link').text();
                var description = $item.find('description').text();
                var image = $(description).find('img').attr('src');
                var price = $(description).find('span.SalePrice').text();

                if (price == '') {price = 'See Price'};

            var html = '<p><a href="'+link+'" target="_blank"><img src="'+image+'"/><br/>';
                html += '<strong>'+title+'</strong><br />';
                html += price+'</a></p>';

                $('#store').append($(html));

            });

    }
});

Он работает локально на моем компьютере, но когда я пытаюсь использовать его на живом сайте, он не работает и не выдает никаких ошибок (или, по крайней мере, ни одной, которую я могу найти). Любые идеи о том, что я могу делать неправильно и как я могу заставить его работать?

Спасибо!

1 Ответ

0 голосов
/ 08 сентября 2010

Уверен, что у вас проблемы с той же политикой происхождения, которая во многих случаях запрещает получение данных на стороне клиента по доменам (см. http://en.wikipedia.org/wiki/Same_origin_policy и http://api.jquery.com/jQuery.ajax/)

Не уверен, какой серверный язык вы используете (если есть), но вы можете настроить серверный скрипт, который извлекает файл на вашем сервере, распечатывает его содержимое, а затем, в свою очередь, загружает этот файл. Сценарий в вашем JS. В PHP это будет выглядеть примерно так:

<?php

header('Content-Type: text/xml');
$ch = curl_init('http://www.thriveafricastore.com/rss.php?type=rss');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
echo curl_exec($ch);

?>

После того, как вы это сделаете, замените URL в вашем запросе на местоположение вашего серверного скрипта (например, fetcher.php).

...