我认为直到谷歌浏览器的第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;
}
我真的不想每次都被迫从网络服务器上打开网页。
答案 0 :(得分:6)
出于安全原因,默认情况下禁用本地文件访问。尝试使用参数 - allow-file-access
从命令行启动Google Chrome答案 1 :(得分:0)
如果您只是启动本地网络服务器并从localhost获取html 和 xml,那将更安全。
只需让服务器提供放置xml的本地文件夹的内容,即可轻松避免部署文件。
这样可以避免
服务器是一个易于安装的网络服务器http://www.server2go-web.de/
的示例