如何在远程服务器上使用XSL呈现本地XML

时间:2013-03-21 10:21:41

标签: xml internet-explorer xslt

在我的应用程序中,我使用XSLT来呈现XML文件。

当客户端有xsl文件时,这工作正常:

<?xml-stylesheet type="text/xsl" href="..\XSL\test.xsl"?>

但是当我尝试在我的服务器上使用XML文件中的xsl文件时,如:

<?xml-stylesheet type="text/xsl" href="http://www.mysite.com/xsl/test.xsl"?>

这不起作用。 这似乎是一个安全限制,但有没有办法在远程服务器上使用远程XSL呈现本地XML文件?

2 个答案:

答案 0 :(得分:2)

在IE11中,仍有一种解决方法。你应该去&#34;互联网选项 - &gt;安全 - &gt;本地互联网 - &gt;自定义级别 - &gt;其他 - &gt;跨域访问数据源&#34;并将其设置为“启用”或“提示”(建议使用最后一个选项,以便您仍然可以对此进行控制)。这将允许通过远程xsl加载/处理本地xml。

答案 1 :(得分:0)

您看到的“安全限制”称为same origin policy。这意味着您的XSLT样式表必须来自加载XML的同一服务器。

如果您的XML来自具有PHP等脚本功能的服务器,您可以通过创建代理脚本来避免这种情况。该脚本实际上将加载远程XSL文件并使其看起来是本地文件:

<?php
header('Content-type: text/xsl');
echo file_get_contents('http://www.mysite.com/xsl/test.xsl');
?>