Я использую этот плагин jQuery (скрипка), чтобы читать RSS-ленту новостей Google. Это требует преобразования формата feed в json. Затем я столкнулся с этой нитью, которая показывает канал Google в формате JSON без помощи Yahoo Pipe:
http://ajax.googleapis.com/ajax/services/feed/load?v=1.0&q=http%3A%2F%2Fnews.google.com%2Fnews%3Foutput%3Drss%26num%3D8
Я попробовал использовать метод плагина для анализа JSON Google, но не смог. Может ли кто-нибудь показать мне правильный способ прочитать этот фид?
Моя попытка:
<script>
$('#rssdata').ready(function()
{
var pipe_url = 'http://ajax.googleapis.com/ajax/services/feed/load?v=1.0&num=8&q=http%3A%2F%2Fnews.google.com%2Fnews%3Foutput%3Drss';
$.getJSON(pipe_url,function(data)
{
$(data.feed.entries).each(function(index,entry)
{
var item_html = '<li><a target="_blank" href="'+entry.link+'">'+entry.title+'</a></li>';
$('#rssdata ul.rss-items').append(item_html);
});
$('#rssdata div.loading').fadeOut();
$('#rssdata ul.rss-items').slideDown();
});
});
</script>
Лента новостей Google:
{"responseData": {"feed":{"feedUrl":"http://news.google.com/news?output\u003drss\u0026num\u003d8","title":"Top Stories - Google News","link":"http://news.google.com/news?pz\u003d1\u0026amp;ned\u003dus\u0026amp;hl\u003den\u0026amp;num\u003d8","author":"","description":"Google News","type":"rss20","entries":[{"title":"Malaysia Airlines loses contact with plane en route to Beijing with 239 aboard - CBS News","link":"http://....
Ваш код не работает из-за политики того же происхождения.
Одно из возможных решений - использовать JSONP
который поддерживается API-интерфейсом новостей Google.
Таким образом, вы можете:
$('#rssdata').ready(function () {
$.ajax({
url: 'http://ajax.googleapis.com/ajax/services/feed/load?v=1.0&num=8&q=http%3A%2F%2Fnews.google.com%2Fnews%3Foutput%3Drss',
dataType: 'jsonp',
success: function (data) {
//console.log(data.feed.entries);
$(data.responseData.feed.entries).each(function (index, entry) {
var item_html = '<li><a target="_blank" href="' + entry.link + '">' + entry.title + '</a></li>';
$('#rssdata ul.rss-items').append(item_html);
});
$('#rssdata div.loading').fadeOut();
$('#rssdata ul.rss-items').slideDown();
},
error: function () {}
});
});