JavaScript 可以从Yahoo加载 RSS XML 提要吗?
客户端 JS 是否允许访问第三方域?
一种简单的方法是通过页面所在的服务器代理请求。步骤是:
在 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 安全性,但会导致服务器上的一些延迟和额外的硬件负载。
您可以使用我的博客文章未成文指南雅虎查询语言中概述的技术
您将使用这样的 yql 语句查询 XML 数据表:
select * from xml
where url="http://path/to/xml
然后,您将使用 src http://query.yahooapis.com/v1/public/yql?q={your yql here} 向您的 html 添加一个脚本标签(可以使用 document.createElement('script') 完成) &format=json&callback={your function here} 其中 {your yql here} 被替换为 yql 语句的 URI 编码版本。
您可以使用Google Feed API从任何域/服务器加载 JavaScript 中的 RSS。它不仅仅是一个代理,它实际上从 Google 缓存中提供 RSS 内容,而不是访问原始服务器。对于无法处理 Slashdot 流量激增的小型服务器来说,这可能是救命稻草。
几年前,我在 Silverlight 上的一篇文章中使用 Feed API 进行跨站点 RSS 访问。
我不确定 JS,但我知道您可以使用google 的 API之一,并且他们有一个 RSS 阅读器。我知道这可能不是您想要的,但是如果您通读文档,您可能会得到关于它是如何工作的答案。
不是直接的。您可以使用 Dana 关于代理请求的建议,或者查看一种称为 JSONP 的方法,该方法本质上将返回的 JSON 对象包装在自定义回调函数中,由您注入 DOM 的脚本标签请求。大多数 API 提供商都支持这一点(包括 Yahoo 的 API)。