Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在远程服务器上使用XSL呈现本地XML_Xml_Internet Explorer_Xslt - Fatal编程技术网

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

如何在远程服务器上使用XSL呈现本地XML,xml,internet-explorer,xslt,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"?> 这是行不通的。 这似乎是一种安全限制,但有

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

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

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

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


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

什么是“当客户端有xsl文件”呢?您是否通过
http://
file://
打开XML?客户端从WCF应用程序获取XML文件,因此它们将作为文件夹中的文件打开。由于这个原因,不幸的是,它们不是来自同一个来源;也不是要求所有用户更改安全设置的解决方案。