2012-01-04 60 views
1

在IE9中使用客户端XSLT时,我注意到IE发送的请求获取XSL以及通过document()方法触发的后续请求的不同标题,而不是请求原始XML文件。特别是accept-language标题完全丢失。MSXML客户端XSLT不发送接受语言头文件

自举XML看起来是这样的:

<?xml version="1.0" encoding="UTF-8"?> 
<?xml-stylesheet type="text/xsl" href="transform.xsl"?> 
<root/> 

像这样

... 
<body> 
<xsl:apply-templates select="document('section.xml')"/> 
</body> 
... 

我注意到什么XSLT是,无论是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)发送相同的标题。

工作示例可以在my test server

这种效应导致在真实生活中的项目的问题中找到,这是因为XML文件是动态生成的并且包含面临着基于所述accept-language头协商内容最终用户。这失败了,因为变压器没有发送报头。

欢迎任何有关解决方法的见解或建议! 谢谢! Carsten

+0

这只是一个随机猜测(因为我真的不知道这应该做什么),但是当您将'ServerHTTPRequest'属性设置为'true'时会做什么改变? http://msdn.microsoft.com/en-us/library/windows/desktop/ms766434(v=vs.85).aspx – 2012-01-04 19:51:07

+0

我实际上依靠浏览器通过将XSL分配给XML来自动执行转换文件。所以我没有操作脚本对象的钩子。 – Carsten 2012-01-05 08:01:44

回答

0

我投“bug”,因为重复依赖请求的接受语言头文件(不确定是否会在任何地方指定)似乎更符合逻辑。您能否将语言首选项信息作为查询参数提取XSL?