2010-08-06 3 views

ответ

2

Несколько вещей, чтобы проверить:

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

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

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

+0

Привет, У меня такая же проблема сейчас, и я не уверен, какой правильный тип mime использовать на стороне сервера. Прямо сейчас у меня есть ' 'в удаленном файле xslt. Он работает, когда вытаскивается локально. – Pradep

1

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

Смотрите следующее для получения дополнительной информации: How can I make XSLT work in chrome?

5

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

Solutions, если вы разработчик:

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

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

+0

И что? Многие HTML-страницы указывают на JS-скрипты на удаленных сайтах. Почему XML-страница не может указывать на XSL на удаленном сайте? – Archie

3

Вы также можете изменить эту настройку на светлячок:

  1. about.config
  2. Accept безопасности предупреждение (и будьте осторожны :-))
  3. Посмотрите на security.fileuri.strict_origin_policy
  4. Set это на false
+1

Но имейте в виду, что это исправление будет работать только в вашем собственном браузере. – Ren

2

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

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

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

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

У меня также есть политика общего происхождения для URIs файлов сворачивается в Firefox, установив в о: конфигурациях:

security.fileuri.strict_origin_policy = false 

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

0

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

Смежные вопросы