8

使用 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 阅读器中运行良好......

4

2 回答 2

31

警告

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,

于 2012-07-05T15:26:18.567 回答
1

你的失败是因为 JavaScript 的同源策略,它基本上限制了你可以检索和操作文件的位置。

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

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

于 2012-07-05T15:03:47.310 回答