2010-08-06 94 views

回答

2

有幾件事情要檢查:

檢查是否正在使用服務器端的正確MIME類型和字符編碼。在加載本地文件時,Firefox將自行編碼,但在從服務器請求時會遵守服務器的MIME類型/編碼聲明。

我見過幾篇文章(例如here),聲稱Firefox根本不支持使用絕對路徑加載遠程XSL模板。我懷疑這一點,並且懷疑這很可能是上面的MIME問題導致他們相信這一點,但直接向Mozilla詢問這一點可能值得。

最後,您是否測試過在本地拉動XSL樣式表時工作?你能否確認它確實是XSLT,而不是微軟唯一的IE-only XSL變種,如WD-XSL?

+0

嗨,我現在有同樣的問題,我不確定哪個是正確的mime類型在服務器端使用。現在我有' '它在本地拉動時起作用。 – Pradep 2012-11-06 19:26:28

5

如果它不是一個語法問題,我認爲這是一個同源策略問題。 Firefox(和also Chrome and IE9)出於安全原因不會使用遠程XSLT轉換本地XML。它給出了一個未知的錯誤805303f4。想象一下,XSLT可能會產生惡意JavaScript,嵌入在HTML輸出代碼中。

解決方案,如果你是開發商:

  • 使服務器端的改造和給用戶鏈接到輸出HTML
  • 下載本地(在後臺),無論是XML和XSLT然後打開用戶的XML

我注意到CSS和圖像文件可以保留在服務器上,沒有任何限制。

+0

那又如何?很多HTML頁面指向遠程站點上的JS腳本。爲什麼XML頁面不能指向遠程站點上的XSL? – Archie 2013-02-08 21:36:45

3

你也可以更改此設置在Firefox上:

  1. about.config
  2. 接受安全警告(和小心:-))
  3. 查找security.fileuri.strict_origin_policy
  4. 套裝它爲假
+1

但請注意,此修補程序只適用於您自己的瀏覽器。 – Ren 2012-10-29 12:27:35

2

對原始問題:如果您在打開XML文檔時遇到Firefox錯誤:

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

,如果XSLT樣式表中使用絕對URL比XML文檔的位置不同的位置的xml-stylesheet處理指令引用,那麼一個解決方案可以是讓Firefox通過安裝使用CORSForce CORS加載項。當然,這要求XSLT文件的服務器也支持CORS。

這對我來說是不同的(對於本地XML文件使用絕對URL引用遠程XSLT的情況)。

我也有一個文件的URI同源策略在Firefox關閉通過有關設置:配置:

security.fileuri.strict_origin_policy = false 

,但沒有這樣的伎倆在此情況下(甚至可以設置成對於這種情況是正確的)。

0

我已經解決了完全相同的問題 - 它似乎與某種程度上與「相同來源策略」相關。域http://someting.orghttp://www.someting.org不一樣 - 我的問題是使用第一個變體(沒有「www。」部分)引用.xsl樣式表。在我添加了「www」之後部分我的.xls樣式表url,一切工作正常。