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

问题描述 投票:0回答:0

我有一个 XML 资源,它在处理指令中引用 XSLT 样式表,它具有

href
属性。该属性的 URL 可以有一个查询字符串参数,也可以没有。但是,当 URL 具有多个查询字符串参数时,浏览器似乎甚至不会获取样式表。为什么会这样?

这就是我的意思。首先,我有改编自this w3schools example的XML/XSLT文件,保存到本地磁盘为

scratch.xml
style.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

老实说,我觉得这很莫名其妙。

我试过至少两种不同的浏览器,我试过至少两种不同的网络服务器(nginx 和 python 服务器)。我没想到样式表 URL 的形式会产生影响。

xml google-chrome firefox xslt browser
© www.soinside.com 2019 - 2024. All rights reserved.