Загрузите локальный XML-файл, используя JavaScript в Google Chrome - PullRequest
3 голосов
/ 03 июня 2011

Я думаю, что до версии 5 Google Chrome ниже код работал.Теперь в последней версии я получаю следующую ошибку при локальном открытии веб-страницы:

"XMLHttpRequest не может загрузить файл: /// C: /Temp/Course.xml. Запросы перекрестного происхождения поддерживаются толькоHTTP. "

Код Javascript:

function getXmlDocument(sFile) {
    var xmlHttp, oXML;   
    // try to use the native XML parser
    try {
        xmlHttp = new XMLHttpRequest();
        xmlHttp.open("GET", sFile, false); // Use syncronous communication
        xmlHttp.send(null);
        oXML = xmlHttp.responseXML;
    } catch(e) {
        // can't use the native parser, use the ActiveX instead
        xmlHttp = getXMLObject();
        xmlHttp.async = false;            // Use syncronous communication
        xmlHttp.resolveExternals = false;
        xmlHttp.load(sFile);
        oXML = xmlHttp;
    }
    // return the XML document object
    return oXML;
}

// get the best ActiveX object that can read XML
function getXMLObject() {
    // create an array with the XML ActiveX versions
    var aVersions = new Array("Msxml2.DOMDocument.6.0", "Msxml2.DOMDocument.3.0");

    // loop through the array until we can create an activeX control
    for (var i=0; i<aVersions.length; i++) {
        // return when we can create the activeX control
        try {
            var oXML = new ActiveXObject(aVersions[i]);
            return oXML;
        } 
        catch(e) {
        }
    }
    // could not create an activeX, return a null
    return null;
}

Я действительно не хочу, чтобы меня заставляли каждый раз открывать веб-страницу с веб-сервера.

Ответы [ 2 ]

6 голосов
/ 03 июня 2011

Локальный доступ к файлам отключен по умолчанию из соображений безопасности.Попробуйте запустить Google Chrome из командной строки с аргументом - allow-file-access

0 голосов
/ 03 июня 2011

Было бы более безопасно, если вы просто запустите локальный веб-сервер и получите html и xml с localhost.

Вы можете легко избежать развертывания файлов, просто дав серверу работатьсодержимое локальной папки, в которую вы помещаете xml.

Таким образом, вы не можете

  • запускать Chrome в небезопасном режиме
  • , когда у вас возникают проблемыпозже разверните свое приложение на сервере в Интернете.

сервер, который можно использовать, - это пример простого в установке веб-сервера http://www.server2go -web.de /

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