Не удается прочитать XML и / или XSLT в Google Chrome - PullRequest
0 голосов
/ 04 ноября 2010

Я пытаюсь загрузить некоторые xml и xslt вещи в следующий HTML-файл:

<html>
    <head>
    <script>
    function loadXMLDoc(dname)
    {
    if (window.XMLHttpRequest)
      {
      xhttp=new XMLHttpRequest();
      }
    else
      {
      xhttp=new ActiveXObject("Microsoft.XMLHTTP");
      }
    xhttp.open("GET",dname,false);
    xhttp.send("");
    return xhttp.responseXML;
    }

    function displayResult()
    {
    xml=loadXMLDoc("FooBar.xml");
    xsl=loadXMLDoc("FooBar.xsl");
    // code for IE
    if (window.ActiveXObject)
      {
      ex=xml.transformNode(xsl);
      document.getElementById("FooBar").innerHTML=ex;
      }
    // code for Mozilla, Firefox, Opera, etc.
    else if (document.implementation && document.implementation.createDocument)
      {
      xsltProcessor=new XSLTProcessor();
      xsltProcessor.importStylesheet(xsl);
      resultDocument = xsltProcessor.transformToFragment(xml,document);
      document.getElementById("FooBar").appendChild(resultDocument);
      }
    }
    </script>
    </head>
    <body onload="displayResult()">
    <div id="FooBar" />
    </body>
</html>

Проблема в том, что этот код отлично работает в Apple Safari без предупреждений и ошибок. Но на Chrome написано, что XMLHttpRequest cannot load file:///C:/Path/To/fooBar.xml. Cross origin requests are only supported for HTTP.

И еще одна проблема заключается в том, что я не буду развертывать de xml, xslt и html на любом сервере.

Кто-нибудь может помочь?

Спасибо.

Ответы [ 2 ]

1 голос
/ 02 марта 2012

Это, очевидно, функция безопасности Chrome, ссылка , предоставленная danny.lesnik, подробно описывает, как обойти.

«Попробуйте запустить Google Chrome из командной строки с аргументом --allow-file-access ИЛИ --allow-file-access-from-files»

1 голос
/ 04 ноября 2010

Да. Похоже, проблема с Chrome.

http://code.google.com/p/chromium/issues/detail?id=58151 подано 5 октября.

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