6

我正在尝试将 RSS 转换为 JSON,但是当我在 Chrome 中使用控制台时出现此错误

XMLHttpRequest 无法加载 http://www.blastcasta.com/feed-to-json.aspx?feedurl=http://www.startalkradio.net/?page_id=354。Access-Control-Allow-Origin 不允许 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>');

        });
    }

});
4

3 回答 3

11

更新:这个答案建议使用已弃用的 Google Feed API。其他选项包括 Superfeedr:将 RSS 转换为 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

推特现场演示:

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>
于 2012-05-07T20:50:51.680 回答
1

好吧,基本上它真的很简单。您无法加载该 URL,因为 JavaScript/您的浏览器不允许它。(因为同源政策)。

您将不得不使用脚本语言(如 PHP)或其他东西来完成,而不是通过 JavaScript

除非您有权访问源(RSS 位置)并且可以添加标题以允许源

于 2012-05-07T20:50:40.603 回答
0

Google Feeds API可以轻松做到这一点。只需使用google.feeds.Feed.JSON_FORMAT结果格式。这也是相关的文档

于 2014-11-20T02:51:55.960 回答