3

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

4

2 回答 2

1

在 IE11 中,仍然有一个解决方法。您应该转到“Internet 选项 -> 安全 -> 本地 Internet -> 自定义级别 -> 杂项 -> 跨域访问数据源”并将其设置为“启用”或“提示”(建议使用最后一个选项,以便您仍然拥有对此进行一些控制)。这将启用通过远程 xsl 加载/处理本地 xml。

于 2013-12-20T15:35:58.137 回答
1

The "security restriction" you're seeing is called same origin policy. This means that your XSLT stylesheets must come from the same server your XML was loaded from.

If your XML comes from a server with scripting ability like PHP or so you can circumvent this by creating a proxy script. This script will essentially load the remote XSL file and make it appear to be a local one:

<?php
header('Content-type: text/xsl');
echo file_get_contents('http://www.mysite.com/xsl/test.xsl');
?>
于 2013-03-21T10:46:39.857 回答