0

在我们的内部合作中,我们交换 XML 文件和有关我们实验的状态信息。这些 XML 文件的来源是一个中心网站,我们希望在该网站上使用 XSL 样式表呈现这些文件。当协作者将 XML 文件下载到她的本地计算机并尝试在 Firefox(或看起来不是 Safari 的其他任何东西)中打开该文件时,由于跨域冲突,浏览器拒绝加载现在的外部 XSL 文件。这种行为是可以生存的,问题是许多浏览器不显示原始 XML 会有所帮助,而是显示错误:

Error loading stylesheet: An unknown error has occurred
(805303f4) http://user.web.cern.ch/user/grl_xslt/grl.xsl

有没有办法告诉浏览器,如果 XSL 文件不可用,显示原始 XML 或应用另一个基于 CSS 的样式表?

4

1 回答 1

1

您可以考虑配置您的服务器以允许访问,例如当我加载包含内容的本地文件时

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="http://home.arcor.de/martin.honnen/cdtest/test2012050101.xsl"?>
<root>
  <foo>
    <bar>test</bar>
  </foo>
</root>

对于 Firefox 12,它应用远程样式表,因为该目录的服务器配置为允许使用 HTTP 标头进行跨源访问Access-Control-Allow-Origin "*"https://developer.mozilla.org/en/HTTP_access_control

但是请注意,我使用 Opera 得到了不同的结果,它显示文档树,说明没有找到关联的样式表。

Chrome 拒绝访问外部样式表是不安全的。

于 2012-05-02T14:20:22.947 回答