我正在尝试将RSS转换为JSON,但当我在Chrome中使用控制台时,我收到此错误
XMLHttpRequest无法加载 http://www.blastcasta.com/feed-to-json.aspx?feedurl=http://www.startalkradio.net/?page_id=354。 Access-Control-Allow-Origin不允许使用null。
jQuery的:
$(document).ready(function() {
var rss_url = "http://www.blastcasta.com/feed-to-json.aspx?feedurl=http://www.startalkradio.net/?page_id=354";
$.ajax({
type : 'GET',
url : rss_url,
succces : function(data) {
$.each(data.rss, function(i, item) {
$("#results").append('<ul>' + item.channel.item.description + '</ul>');
});
},
dataType : 'json',
async : true
});
function fetchRss(data) {
$.each(data.rss, function(i, item) {
$("#results").append('<ul>' + item.channel.item.description + '</ul>');
});
}
});
答案 0 :(得分:11)
更新:此答案建议使用已弃用的Google Feed API。其他选项包括Superfeedr:Converting RSS to JSON
发生该错误是因为RSS文件不在您的服务器中,因此您违反了Access-Control-Allow-Origin。
尝试使用此插件用于RSS的跨域目的:
http://jquery-howto.blogspot.com/2009/11/cross-domain-rss-to-json-converter.html
修改强>
图书馆下载链接:
http://code.google.com/p/lomodroid/source/browse/src/functions/jquery.jgfeed.js
使用Twitter进行现场演示:
http://jsfiddle.net/oscarj24/NbDWb/
使用问题中使用的链接进行现场演示:
http://jsfiddle.net/oscarj24/NbDWb/3/
这会将RSS转换为JSON
<script src="jquery.js"></script>
<script src="jquery.jgfeed.js"></script>
<script>
$.jGFeed('http://twitter.com/statuses/user_timeline/26767000.rss',
function(feeds){
// Check for errors
if(!feeds){
// there was an error
return false;
}
// do whatever you want with feeds here
for(var i=0; i<feeds.entries.length; i++){
var entry = feeds.entries[i];
// Entry title
entry.title;
}
}, 10);
</script>
答案 1 :(得分:1)
基本上它真的很简单。您无法加载该URL,因为JavaScript /您的浏览器不允许它。 (因为同源政策)。
你必须使用脚本语言(如PHP)或其他东西,而不是JavaScript
除非您有权访问源(RSS位置)并且可以添加标题以允许原点
答案 2 :(得分:0)
Google Feeds API可以轻松完成此操作。只需使用google.feeds.Feed.JSON_FORMAT
结果格式即可。这也是the docs。