XSLT на стороне клиента MSXML не отправляет заголовок языка подтверждения - PullRequest
1 голос
/ 04 января 2012

При использовании клиентского XSLT в IE9 я заметил, что IE отправляет разные заголовки для запросов, которые выбирают XSL и последующие запросы, инициированные с помощью метода document(), чем для запроса исходного 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. Это не удается, поскольку преобразователь не отправляет заголовок.

Любые идеи или предложения для обходных путей приветствуются! Спасибо! Карстен

1 Ответ

0 голосов
/ 06 января 2012

Я голосую за "ошибку", так как кажется более логичным повторить заголовок accept-language для зависимых запросов (не уверен, будет ли это указано где-либо). Не могли бы вы перенести информацию о предпочтениях языка в качестве параметра запроса для запроса, извлекающего XSL?

...