2012-01-04 59 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?