我一直在努力使用jQuery.get()来引入我的动态生成的RSS源,而我只有问题,我的RSS源是错误的格式吗?如果是这样,我可以使用javascript将其转换为正确的格式吗?
这是我的Feed: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 class="entry"><a href="' + link + '" target="_blank">' + title + '</a></div>';
$('.content').append(html);
i++;
});
});
};
任何输入都将不胜感激!! 感谢
答案 0 :(得分:5)
我在IE中试过这个并且它运行正常。
$(document).ready(function() {
$.get('http://dev.chriscurddesign.co.uk/burns/p/rc_rss.php?rcf_id=0',
'xml' , function(data) {
alert(data);
});
});
由于跨站点脚本问题,这在其他浏览器中不起作用。上述代码仅在其所在的页面位于同一域中时才有效。 所以,你有很多选择,但没有一个是标准的。 最好是从您的域中对URL进行ajax调用,然后从那里调用feed url;从服务器端。 有关更多信息,请参阅 https://stackoverflow.com/search?q=calling+webservice+from+another+domain+using+jquery
答案 1 :(得分:1)
感谢pokrate指出这是一个跨域问题。 为了将来参考,我现在使用php代理来获取rss,然后使用jquery来处理它。
这是代理(你需要在php中打开curl):
<?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);
?>
这是我的新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);
});
});
};
我=快乐的兔子:)
答案 2 :(得分:0)
只需使用jFeed,这将使您的代码更加简单。