微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在Google Chrome中使用javascript加载本地xml文件

我认为直到谷歌浏览器的第5版,以下代码才有效.现在在最新版本中,我在本地打开网页时出现以下错误

XMLHttpRequest无法加载file:/// 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;
}

我真的不想每次都被迫从Web服务器打开网页.

解决方法:

出于安全原因,认情况下禁用本地文件访问.尝试使用参数–allow-file-access从命令行启动Google Chrome

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。