在我们的协作内部,我们使用有关我们实验的状态信息交换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的样式表?
答案 0 :(得分: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拒绝访问外部样式表是不安全的。