JavaScript可以从Yahoo加载RSS XML Feed吗?
是否允许客户端JS访问第三方域?
答案 0 :(得分:2)
执行此操作的简单方法是通过页面所在的服务器代理请求。步骤是:
在IE 8和FF 3.1(不确定)上,可以通过专门的跨站点调用来发出这些请求,但上一代浏览器仍然会导致问题。参见:
http://dannythorpe.com/2009/01/15/ie8-cross-domain-request-support-demo/ http://ejohn.org/blog/cross-site-xmlhttprequest/功能在FF 3.0中受到限制,不清楚它是否会回到3.1
但是,保证上述步骤不会违反任何浏览器CSS安全性,代价是服务器上出现一些滞后和额外的负载。
答案 1 :(得分:2)
您可以使用我的博文Unwritten guide to Yahoo Query Langauge
中列出的技术您将使用yql语句查询XML数据表,如下所示:
select * from xml
where url="http://path/to/xml
然后你会在你的html中添加一个脚本标签(可以使用document.createElement('script'))和src http://query.yahooapis.com/v1/public/yql?q=/your yql here} & format = json& callback = {your function here}其中{your yql here}将替换为您的yql statment的URI编码版本。
答案 2 :(得分:2)
您可以使用Google Feed API从任何域/服务器加载JavaScript中的RSS。它不仅仅是一个代理,它实际上是从Google缓存中提供RSS内容而不是访问原始服务器。这可能是无法处理Slashdot流量激增的小型服务器的救星。
几年前,我在article on Silverlight中使用Feed API进行跨网站RSS访问。
答案 3 :(得分:0)
我不确定JS,但我知道你可以使用google's APIs中的一个,并且他们有一个RSS阅读器。我知道这可能不是你想要的,但如果你仔细阅读文档,你就可以得到你的答案。
答案 4 :(得分:0)
不直接。您可以使用Dana关于请求的代理建议,或者查看一个名为JSONP的方法,该方法基本上将返回的JSON对象包装在自定义回调函数中,由您注入DOM的脚本标记请求。大多数API提供商都支持此功能(包括Yahoo的API)。