BackboneJS RSS feed

时间:2014-03-09 23:12:00

标签: backbone.js rss

我想获取RSS源并在我的Backbone App中显示它们。我可以这样做吗?:

function (App, Backbone) {

    var Rss = App.module();

    Rss.View = Backbone.View.extend({
        template: 'rss',
        initialize: function() {
            this.listenTo(this.collection, 'all', this.render)
        },
        serialize: function() {
            return this.collection ? this.collection.toJSON() : [];
        }
    });
    Rss.RssCollection = Backbone.Collection.extend({
        url: function() {
            return 'http://feeds.bbci.co.uk/news/rss.xml';
        }
    });

    Rss.Model = Backbone.Model.extend({
    url:  'http://feeds.bbci.co.uk/news/rss.xml',
        defaults: {
            title: '',
            description: '',
            pubdate: ''
        }
    });

    return Rss;
}

然后我的HTML模板如下:

<p>{{title}}</p>
<p>{{description}}</p>
<p>{{pubdate}}</p>

但我得到No 'Access-Control-Allow-Origin' header is present on the requested resource。那么,我该如何避免这种情况呢?我的Backbone方法是否正确?

提前致谢...

1 个答案:

答案 0 :(得分:0)

您收到的错误表示由于CORS policy,您的浏览器无法从运行此应用的网页/域中获取“http://feeds.bbci.co.uk/news/rss.xml”上的资源。

您可以通过将feeds.bbci.co.uk网址添加到Access-Control-Allow-Origin HTTP标头来解决该CORS问题,但这不会解决所有问题,因为您的浏览器不接受您从另一个网站注入内容的帽子源。

如果你使用(d)像Superfeedr这样的服务(我创建它!),你的骨干方法可以工作,它可以将feed转换为JSON,并带有可以用新数据调用的回调。