Проблемы с чтением RSS-канала с помощью jQuery.get()

Я вытаскиваю свои волосы, пытаясь использовать jQuery.get(), чтобы вытащить динамически генерируемый RSS-канал, и у меня нет ничего, кроме проблем, является ли мой RSS-канал неправильным форматом? Если это так, я могу преобразовать его в правильный формат с помощью javascript?

Здесь мой канал: http://dev.chriscurddesign.co.uk/burns/p/rc_rss.php?rcf_id=0

Здесь мой код:

function get_rss_feed() {
 $(".content").empty();
 $.get("http://dev.chriscurddesign.co.uk/burns/p/rc_rss.php?rcf_id=0", function(d) {
 var i = 0;
 $(d).find('item').each(function() {
 var $item = $(this);
 var title = $item.find('title').text();
 var link = $item.find('link').text();
 var location = $item.find('location').text();
 var pubDate = $item.find('pubDate').text();
 var html = '<div><a href="' + link + '" target="_blank">' + title + '</a></div>';
 $('.content').append(html);
 i++;
 });
 });
};

Любой вход был бы очень благодарен!! Благодаря

3 ответа

Благодаря pokrate, указав, что это проблема междоменной. В будущем я использую php-прокси, чтобы захватить rss, а затем jquery для его обработки.

Вот прокси (вам нужно включить завиток в php):

И вот мой новый javascript:

function get_rss_feed() {
 $(".content").empty();
 var feed = "http://dev.chriscurddesign.co.uk/burns/p/rc_rss.php?rcf_id=0";
 $.get("feedproxy.php?url=" + feed, function(d) {
 $(d).find('item').each(function() {
 var $item = $(this);
 var title = $item.find('title').text();
 var link = $item.find('link').text();
 var html = '<div><a href="' + link + '" target="_blank">' + title + '</a></div>';
 $('.content').append(html);
 });
 });
};

Me = Happy Bunny:)


Просто используйте jFeed, это сделает код намного проще.


Я пробовал это в IE, и он работал нормально.

$(document).ready(function() {
 $.get('http://dev.chriscurddesign.co.uk/burns/p/rc_rss.php?rcf_id=0',
 'xml' , function(data) {
 alert(data);
 });
 });

Это не работает в других браузерах из-за проблем с сайтом. Вышеприведенный код будет работать, только если страница, в которой оно находится, находится в том же домене. Итак, у вас есть много вариантов, ни один из которых не является стандартным. Лучше всего сделать ajax-вызов URL-адреса из вашего домена, а затем вызывать URL-адрес канала, т.е. с сервера. Подробнее см. https://stackoverflow.com/search?q=calling+webservice+from+another+domain+using+jquery

licensed under cc by-sa 3.0 with attribution.