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
這只是一個隨機猜測(因爲我真的不知道這應該做什麼),但是當您將'ServerHTTPRequest'屬性設置爲'true'時會做什麼改變? http://msdn.microsoft.com/en-us/library/windows/desktop/ms766434(v=vs.85).aspx – 2012-01-04 19:51:07
我實際上依靠瀏覽器通過將XSL分配給XML來自動執行轉換文件。所以我沒有操作腳本對象的鉤子。 – Carsten 2012-01-05 08:01:44