2010-02-11 95 views
1

當我嘗試從站點獲取XML文件(RSS源)時,我無法獲得它。使用Ajax獲取XML文件

網絡瀏覽器互聯網 資源管理器和Firefox告訴我,我沒有權限。

現在我支持代理,但也許它會產生該消息。難道它是從一個網站(我的) 我無法獲得其他網站(域) 的其他資源出於安全原因?

回答

1

瀏覽器阻止cross-site scripting。你必須使用相對路徑,否則大多數瀏覽器都會拒絕進行AJAX調用。

作爲一種可能的解決方法,您可以設置一個非常簡單的reverse proxy(如果您使用的是Apache,則爲mod_proxy)。這將允許您在AJAX請求中使用相對路徑,而HTTP服務器將充當任何「遠程」位置的代理。

在mod_proxy中設置反向代理的基本配置指令是ProxyPass。如下您通常會使用它:

ProxyPass /ajax/stackoverflow/ http://stackoverflow.com/feeds/ 

在這種情況下,瀏覽器會請求/ajax/stackoverflow/tag?tagnames=javascript但服務器會通過充當代理http://stackoverflow.com/feeds/tag?tagnames=javascript服務於這個。