2010-02-11 98 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服务于这个。