在IE9中使用客户端XSLT时,我注意到IE通过document()
方法为获取XSL和后续请求的请求发送不同的头,而不是请求原始XML文件。特别是accept-language
标题完全丢失。
引导程序XML如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="transform.xsl"?>
<root/>
和像这样的XSLT
...
<body>
<xsl:apply-templates select="document('section.xml')"/>
</body>
...
我注意到XSLT和section.xml
文件都加载了没有接受语言标头的HTTP请求。
获取XML文件的请求标头如下所示:
Accept: text/html, application/xhtml+xml, */*
Accept-Language: en-US,de-DE;q=0.5
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
Accept-Encoding: gzip, deflate
Connection: Keep-Alive
而其他资源则加载
Accept: */*
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
Connection: Keep-Alive
是功能还是错误?其他浏览器(如FF或Chrome)会发送相同的标头。
上找到一个工作示例此效果会导致实际项目出现问题,因为XML文件是动态生成的,包含面向最终用户的内容,这些内容是基于accept-language
标头协商的。这会失败,因为变压器没有发送标头。
欢迎任何有关变通方法的见解或建议! 谢谢! 卡斯滕
答案 0 :(得分:0)
我投票支持“bug”,因为对依赖请求重复接受语言标头似乎更合乎逻辑(不确定是否会在任何地方指定)。您是否可以将语言首选项信息作为获取XSL的请求的查询参数?