Chrome 当URL有多个查询字符串参数时,为什么浏览器不允许提取XSLT样式表

8hhllhi2  于 2023-03-16  发布在  Go
关注(0)|答案(1)|浏览(127)

我有一个XML资源在处理指令中引用了XSLT样式表,它有一个href属性。该属性的URL可以有一个查询字符串参数,也可以没有。但是,当URL有多个查询字符串参数时,浏览器似乎甚至不获取样式表。为什么会发生这种情况?
我的意思是,首先,我有一个从this w3schools example改编而来的XML/XSLT文件,保存到本地磁盘,分别为scratch.xmlstyle.xml,我编辑了这个XML文件,在靠近顶部的地方(第二行)添加了以下处理指令:

<?xml-stylesheet href="style.xsl" type="text/xsl"?>

我正在此目录中运行Web服务器,使用:

python3 -m http.server

如果我在浏览器http://localhost:8000/scratch.xml中获取XML文件,它会获取样式表并进行良好的呈现,如果我更改href属性并添加一个查询字符串参数,则它看起来如下所示:

<?xml-stylesheet href="style.xsl?foo=1" type="text/xsl"?>

它会读取样式表并很好地呈现。但是,如果我更改href属性并添加一个参数,则它看起来如下所示:

<?xml-stylesheet href="style.xsl?foo=1&bar=2" type="text/xsl"?>

浏览器甚至停止尝试获取样式表。这种情况在Chrome和Firefox中都有发生。我通过嗅探流量验证了它甚至没有请求样式表:

ngrep -d lo port 8000

老实说,我觉得很困惑。
我试过至少两种不同的浏览器,也试过至少两种不同的web服务器(nginx和python服务器),我完全没有想到样式表URL的形式会有影响。

pkln4tw6

pkln4tw61#

您的XML格式不正确,因为&字符需要转义为&amp;

相关问题