簡體   English   中英

JavaScript 可以從第三方域加載 XML 數據嗎?

[英]Can JavaScript load XML data from a third-party domain?

JavaScript 可以從Yahoo加載 RSS XML 提要嗎?

客戶端 JS 是否允許訪問第三方域?

您可以使用Google Feed API 從任何域/服務器加載 JavaScript 中的 RSS。 它不僅僅是一個代理,它實際上從 Google 緩存中提供 RSS 內容,而不是訪問原始服務器。 對於無法處理 Slashdot 流量激增的小型服務器來說,這可能是救命稻草。

幾年前,我在一篇關於 Silverlight的文章中使用了 Feed API 進行跨站點 RSS 訪問。

一種簡單的方法是通過頁面所在的服務器代理請求。 步驟是:

  1. 編寫服務器端腳本在 rss 提要上執行 http 請求,當該腳本本身是請求時(即通過 get 或 post)
  2. 使用 ajax 請求服務器端腳本,或者只是從該頁面的主腳本中調用它。
  3. 然后,服務器端腳本以某種可顯示的形式返回提要源。
  4. 利潤!

在 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 編碼版本。

我不確定 JS,但我知道您可以使用google 的 API之一,並且他們有一個 RSS 閱讀器。 我知道這可能不是您想要的,但是如果您通讀文檔,您可能會得到關於它是如何工作的答案。

不是直接的。 您可以使用 Dana 提出的代理請求的建議,或者查看一種稱為 JSONP 的方法,該方法實質上將返回的 JSON object 包裝在自定義回調 ZC1C425268E68385D1AB544F 請求的腳本標簽中。 大多數 API 提供商都支持這一點(包括 Yahoo 的 API)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM