Firefox и удаленные таблицы стилей XSL
Я пытаюсь загрузить локальные XML-файлы с удаленной таблицей стилей XSL. IE, похоже, справляется с этим просто отлично, но не firefox. Есть ли решение для этого?
6 ответов
несколько вещей, чтобы проверить:
проверьте, что вы используете правильный тип mime и кодировку символов на стороне сервера. Firefox разработает кодировку для себя при загрузке локального файла, но будет соблюдать объявление типа MIME/кодировки сервера при запросе с сервера.
Я видел несколько постов (например,здесь), которые утверждают, что Firefox просто не поддерживает загрузку удаленных шаблонов XSL с использованием абсолютных путей. Я сомневаюсь в этом и подозреваю, что скорее всего, проблема mime, как указано выше, заставляет их поверить в это, но, возможно, стоит спросить об этом напрямую у Mozilla.
наконец, вы проверили, что таблица стилей XSL работает при локальном вытягивании? И можете ли вы подтвердить, что это действительно XSLT, а не один из причудливых вариантов Microsoft IE-only XSL, таких как WD-XSL?
Если это не проблема синтаксиса, я думаю, что это та же политика происхождения вопрос. В Firefox (и также Chrome и IE9) не преобразует локальный XML с удаленным XSLT по соображениям безопасности. Это дает неизвестную ошибку 805303f4
. Представьте, что XSLT может создавать вредоносный JavaScript, встроенный в выходной код HTML.
решения, если вы разработчик:
- сделайте преобразование на стороне сервера и дайте пользователю ссылку к выходу HTML
- загрузите локально (в фоновом режиме) как XML, так и XSLT, а затем откройте XML для пользователя
Я заметил, что CSS и графические файлы остаются на сервере без ограничений.
вы также можете изменить этот параметр в firefox:
- о программе.config
- примите предупреждение безопасности (и будьте осторожны : -))
- искать безопасности.файлури.strict_origin_policy
- установите значение false
на исходный вопрос: если вы получите эту ошибку с Firefox при открытии XML-документа:
Error loading stylesheet: An unknown error has occurred (805303f4)
и если таблица стилей XSLT упоминается в инструкции по обработке XML-таблицы стилей с использованием абсолютного URL-адреса сайта, отличного от сайта XML-документа, то одним из решений может быть использование Firefox CORS установка Force CORS надстройки. Конечно, это требует, чтобы сервер файла XSLT поддерживал CORS как что ж.
это имело значение для меня (для случая локального XML-файла, ссылающегося на удаленный XSLT с использованием абсолютного URL-адреса).
у меня также есть политика того же происхождения для файлов URIs, отключенная в Firefox, установив в about: config:
security.fileuri.strict_origin_policy = false
но это не сделать трюк в этом случае (и даже может быть true для данного случая).
У меня были проблемы с Firefox, выполняющим преобразование правильно, но смог исправить это, добавив пространство имен XHTML.
см. ниже для получения дополнительной информации: как я могу заставить XSLT работать в chrome?
Я решил точно такую же проблему-кажется, это было как-то связано с "той же политикой происхождения". Домены http://someting.org и http://www.someting.org не то же самое - моя проблема заключалась в ссылке .таблица стилей xsl с использованием первого варианта (без " www." часть.) После того, как я добавил "www.- часть моя .url таблицы стилей xls, все работает нормально.