【问题标题】:Reading RSS feed with jQuery?用 jQuery 阅读 RSS 提要?
【发布时间】:2012-07-06 00:20:57
【问题描述】:

使用 jQuery rss 插件 jFeed,并使用他们网站上的示例代码,我创建了以下似乎不起作用的代码:

jQuery.getFeed({
    url: 'http://www.hotukdeals.com/rss/hot',
    success: function(feed) {
        alert(feed.title);
    }
});

我收到一条消息:

XMLHttpRequest cannot load http://www.hotukdeals.com/rss/hot. Origin http://intranet is not allowed by Access-Control-Allow-Origin.

有人知道我为什么会收到此访问控制消息吗?这个 rss 提要在我的桌面和在线 rss 阅读器中运行良好...

【问题讨论】:

标签: jquery jquery-plugins rss xml-parsing rss-reader


【解决方案1】:

警告

The Google Feed API 已正式弃用并且不再有效

无需插件即可轻松完成,返回数据为json格式

        $(function(){
        url = 'http://www.thetutlage.com/rss.xml';
        $.ajax({
        type: "GET",
        url: document.location.protocol + '//ajax.googleapis.com/ajax/services/feed/load?v=1.0&num=1000&callback=?&q=' + encodeURIComponent(url),
        dataType: 'json',
        error: function(){
            alert('Unable to load feed, Incorrect path or invalid feed');
        },
        success: function(xml){
            values = xml.responseData.feed.entries;
            console.log(values);
        }
    });
    });

只要确保它指向一个 xml 文件并将 url 更改为 url Rss feed,

【讨论】:

  • 使用这种技术,我们如何接收其他元素值,例如 ,它们可能在每个元素中rss 块?这可能吗?这只会加载谷歌期望读取的默认元素,但我的 rss 文件有自定义元素名称......
  • 我尝试过这样做,并且成功:函数(数据),它只搜索和加载以下元素 - 、、。但它没有加载或查找 或此 rss 块中的任何其他自定义元素,当您查看实际的 rss 文件本身时,它就在那里。只是在寻找想法......
  • 我可以给你一个 RSS 源的链接
  • Google Feed api 已被弃用,并于 02.12.2015 关闭
【解决方案2】:

您的失败是因为 JavaScript 的 same origin policy,它基本上将您限制在可以从中检索和操作文件的位置。

通常,您无法从不同于当前页面的位置检索内容(在您的情况下为 rss 提要)。例外只是图像和脚本。

因此,在您的情况下,一种解决方案可能是在您的服务器上设置一个代理脚本,它只调用 RSS 提要并将结果中继到您的页面。这样,从浏览器的角度来看,所有内容都来自同一个来源。

【讨论】:

  • 我刚刚发布了一个答案,它可以让您从跨域中提取提要,而不会出现任何同源策略问题。我在所有浏览器中都试过了,似乎工作正常......
  • @AmanVirk 您正在使用代理脚本来生成 JSONP 请求。只要这个 google api 在线,它就可以正常工作,但没有它就会失败。
  • @AmanVirk。我不同意,我认为如果我在自己的服务器上开发自己的代理脚本,那么该服务器比 google api 更有可能离线......所以我认为使用 Google Api 对我来说更可靠,尤其是当我没有太多时间,尤其是这个 RSS 提要并不重要。因此,时不时地让每个人都下线并不是什么大不了的事。
  • @Sirko。我不同意,我认为如果我在自己的服务器上开发自己的代理脚本,那么该服务器比 google api 更有可能离线......所以我认为使用 Google Api 对我来说更可靠,尤其是当我没有太多时间,尤其是这个 RSS 提要并不重要。因此,时不时地让每个人都下线并不是什么大不了的事。
  • @oshirowanen 在我看来,我的页面尽可能地独立于外国服务。但是,取决于具体的用例。
猜你喜欢
  • 2010-10-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-12
  • 1970-01-01
相关资源
最近更新 更多