在我的应用程序中,我使用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文件?
答案 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');
?>