2013-03-03 78 views
1

我正在構建一個web應用程序,將用ascii編寫的數學公式轉換爲MathML格式,然後將MathML格式轉換爲OMML格式。 爲此,我找到了一個xsl文件,該文件使用XSLTProcessor將MathML轉換爲OMML。 在我的劇本我設法建立MATHML文件並加載它,改造它,我有嚴重的麻煩加載使用XSL文件:使用javascript加載XSL文件

var xsltProcessor=new XSLTProcessor(); 
    xsltProcessor.importStylesheet("MML2OMML.XSL"); 

該應用程序是唯一的客戶端將是用於個人用戶,因此沒有服務器。 因此,知道鉻有權限問題:

Access-Control-Allow-Origin不允許原點null。

我才知道,我無法從我的本地文件系統中加載XSL文件,除非我用的FileReaderHTML5,但這需要我使用表單輸入,我不想要這個。

所以我嘗試使用的XMLHttpRequest使用此代碼把我的公用文件夾上的Dropbox文件:

var request = new XMLHttpRequest(); 
    var url = "http://dl.dropbox.com/u/27440550/MML2OMML.XSL"; 
    request.open("GET",url,true); 
    request.send(); 
    console.log(request.responseXML); 

而且我仍然有同樣的錯誤

Access-Control-Allow-Origin不允許Origin null。

當Chrome檢測到被訪問的文件是本地文件時,是不是產生了這個錯誤?爲什麼他認爲該文件在公共存儲(Dropbox)上時是本地文件?

已經過了2天我正在尋找答案,我真的很沮喪。有人可以爲我提供解決方案嗎?謝謝:)!

回答

1

如果您將應用程序作爲脫機應用程序從file:///運行,那麼XSLT文件是否聯機並不重要;兩個起源必須同意,並且對於您的應用程序,它仍然是「空」,因此您將無法獲得該XSLT文件。如果應用程序僅僅是客戶端,那麼將該XSLT文件作爲客戶端下載應用程序時下載的數據的一部分,並將其存儲爲base64編碼文本,以便您可以使用Javascript解壓並注入它,或者讓它坐在在與index.html相同的目錄中,然後使您生成的XML作爲相對鏈接加載樣式表。