Reputation: 4477
I've been pulling my hair out trying to use jQuery.get() to pull in my dynamically generated RSS feed and I'm having nothing but issues, is my RSS feed the wrong format? If so can I convert it to the correct format using javascript?
Here's my feed: http://dev.chriscurddesign.co.uk/burns/p/rc_rss.php?rcf_id=0
Here's my code:
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 class="entry"><a href="' + link + '" target="_blank">' + title + '</a></div>';
$('.content').append(html);
i++;
});
});
};
Any input would be greatly appreciated!! Thanks
Upvotes: 3
Views: 6208
Reputation: 4477
Thanks to pokrate for pointing out that it was a cross-domain issue. For future reference I'm using a php proxy now to grab the rss and then jquery to process it.
Here is the proxy (you need curl turned on in php):
<?php
$session = curl_init($_GET['url']);
curl_setopt($session, CURLOPT_HEADER, false);
curl_setopt($session, CURLOPT_RETURNTRANSFER, true);
$xml = curl_exec($session);
header("Content-Type: text/xml");appropriately
echo $xml;
curl_close($session);
?>
And here's my new 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 class="entry"><a href="' + link + '" target="_blank">' + title + '</a></div>';
$('.content').append(html);
});
});
};
Me = Happy Bunny :)
Upvotes: 1
Reputation: 3974
I tried this in IE and it worked ok.
$(document).ready(function() {
$.get('http://dev.chriscurddesign.co.uk/burns/p/rc_rss.php?rcf_id=0',
'xml' , function(data) {
alert(data);
});
});
This wont work in other browsers because of cross site scripting issues. The above code will only work if the page in which its residing is in the same domain. So, you have many options none of which is standard though. Best is make an ajax call to a url from your domain and then call the feed url from there ie; from server side. For more see this https://stackoverflow.com/search?q=calling+webservice+from+another+domain+using+jquery
Upvotes: 5
Reputation: 31928
Just use jFeed instead, this will make you code a lot simpler.
Upvotes: 0