2013-03-03 4 views
1

Я создаю веб-приложение, которое преобразует математические уравнения, написанные в формате ascii в MathML, а затем преобразует формат MathML в формат OMML. Для этого я нашел файл xsl, который преобразует MathML в OMML, используя XSLTProcessor. В моем сценарии я удалось создать файл MathML и загрузить его, и превратить его, у меня серьезные проблемы с загрузкой файла XSL с помощью:Загрузка XSL-файла с помощью javascript

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

приложение является только на стороне клиента будет используется для отдельных пользователей, поэтому нет сервера. Так зная, что хром имеет разрешение:

Происхождение null не допускается через Access-Control-Allow-Origin.

я узнал, что я не могу загрузить файл XSL из моей локальной файловой системы, если я не использовал FileReader с HTML5, но это требует, чтобы я использовать формы ввода, и я не хочу этого ,

поэтому я попытался с помощью 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); 

И я все еще с той же ошибки

Происхождение null не разрешено Access-Control-Allow-Origin.

Не возникает ли эта ошибка, когда Chrome обнаруживает, что доступ к файлу является локальным? И почему он считает, что файл является локальным, когда он находится в общедоступном хранилище (Dropbox)?

Прошло 2 дня. Я ищу ответ, и я действительно расстроен. Может ли кто-нибудь предоставить мне решение? благодаря:)!

ответ

1

Если вы запустите приложение как офлайн-приложение из файла: ///, то не имеет значения, что XSLT-файл находится в сети; оба источника должны согласиться, и для вашего приложения он по-прежнему «null», поэтому вы не сможете получить этот XSLT-файл. Если приложение действительно является только клиентской стороной, включите этот XSLT-файл как часть данных, которые клиент загружает, когда они получают приложение, и сохранит его как кодированный в формате base64 текст, чтобы вы могли распаковать и вставить его с помощью Javascript, или заставить его сидеть в том же каталоге, что и index.html, а затем создайте созданный XML, загрузите таблицу стилей как относительную ссылку.

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