Firefox и удаленные таблицы стилей XSL - PullRequest
6 голосов
/ 06 августа 2010

Я пытаюсь загрузить локальные файлы XML с помощью удаленной таблицы стилей XSL. IE, кажется, справляется с этим просто отлично, но не с Firefox. Есть ли исправление для этого?

Ответы [ 6 ]

6 голосов
/ 23 сентября 2011

Если это не проблема синтаксиса, я думаю, что это тот же вопрос политики . Firefox (и , а также Chrome и IE9 ) не преобразовывают локальный XML с помощью удаленного XSLT по соображениям безопасности. Выдает неизвестную ошибку 805303f4. Представьте, что XSLT может создавать вредоносный JavaScript, встроенный в выходной код HTML.

Решения, если вы разработчик:

  • сделать преобразование на стороне сервера и дать пользователю ссылку на вывод HTML
  • локально (в фоновом режиме) загрузите XML и XSLT, а затем откройте XML для пользователя

Я заметил, что CSS и файлы изображений могут оставаться на сервере без ограничений.

3 голосов
/ 13 февраля 2012

Вы также можете изменить этот параметр в Firefox:

  1. about.config
  2. Принять предупреждение безопасности (и будьте осторожны: -))
  3. Ищите security.fileuri.strict_origin_policy
  4. Установите значение false
2 голосов
/ 05 сентября 2012

По первоначальному вопросу: если вы получаете эту ошибку с Firefox при открытии вашего XML-документа:

Error loading stylesheet: An unknown error has occurred (805303f4)

и если на таблицу стилей XSLT ссылаются в инструкции по обработке таблицы стилей xml, используя абсолютный URLЕсли сайт отличается от сайта XML-документа, то одним из решений может быть использование Firefox CORS путем установки дополнения Force CORS .Конечно, это требует, чтобы сервер файла XSLT также поддерживал CORS.

Для меня это имело значение (в случае локального файла XML, ссылающегося на удаленный XSLT с использованием абсолютного URL).

У меня также есть политика того же происхождения для файловых URI, отключенных в Firefox путем установки about: config:

security.fileuri.strict_origin_policy = false

, но это не помогло в этом случае (и даже может бытьдля этого случая установлено значение true).

2 голосов
/ 06 августа 2010

Несколько вещей для проверки:

Убедитесь, что вы используете правильный mime-тип и кодировку символов на стороне сервера.Firefox определит кодировку для себя при загрузке локального файла, но при запросе с сервера соблюдает декларацию mime-типа / кодировки сервера.

Я видел несколько сообщений (например, здесь), которые утверждают, что Firefox просто не поддерживает загрузку удаленных шаблонов XSL с использованием абсолютных путей.Я сомневаюсь в этом и подозреваю, что, скорее всего, проблема MIME, как указано выше, заставляет их поверить в это, но, возможно, стоило бы спросить об этом Mozilla напрямую.

Наконец, проверили ли вы, что таблица стилей XSL работает при извлечениина местном уровне?И можете ли вы подтвердить, что это действительно XSLT, а не один из причудливых вариантов Microsoft XSL только для IE, например WD-XSL?

1 голос
/ 06 августа 2010

У меня были проблемы с Firefox, выполняющим преобразование правильно, но я смог исправить его, добавив пространство имен XHTML.

Для получения дополнительной информации см. Следующее: Как заставить XSLT работать вхром

0 голосов
/ 26 августа 2013

Я решил точно такую ​​же проблему - похоже, это было как-то связано с «Одной и той же политикой происхождения». Домены http://someting.org и http://www.someting.org не совпадают - моя проблема заключалась в обращении к таблице стилей .xsl с использованием первого варианта (без части "www."). После того, как я добавил "www." часть к моей таблице стилей .xls, все работает отлично.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...