Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/419.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在IE8中使用xmlhttp加载XML文件_Javascript_Internet Explorer 8_Xmlhttprequest_Xmldom - Fatal编程技术网

Javascript 在IE8中使用xmlhttp加载XML文件

Javascript 在IE8中使用xmlhttp加载XML文件,javascript,internet-explorer-8,xmlhttprequest,xmldom,Javascript,Internet Explorer 8,Xmlhttprequest,Xmldom,我正在设计一个在线调查,其中一个主要特点是问题存储在外部的XML文件中,每次都会加载随机问题。虽然我的代码在Firefox中运行良好,但当我尝试在InternetExplorer8中加载页面时,会出现“访问被拒绝”错误。我已将问题隔离到代码的以下部分: //Import the XML File if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari xmlhttp=new XMLHttpR

我正在设计一个在线调查,其中一个主要特点是问题存储在外部的XML文件中,每次都会加载随机问题。虽然我的代码在Firefox中运行良好,但当我尝试在InternetExplorer8中加载页面时,会出现“访问被拒绝”错误。我已将问题隔离到代码的以下部分:

//Import the XML File
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
    xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5*/
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}

//Import XML
xmlhttp.open("POST","Personalized Tour/questions.xml",false);
xmlhttp.send();
xmlDoc=xmlhttp.responseXML;
特别是,这个错误似乎是在xmlhttp.open上抛出的。我在其他几个网站上寻找类似的问题,他们似乎暗示有某种域错误触发了IE8的安全设置。是这样,还是有更多的原因


谢谢您的帮助。

在IE上,您可以直接在xml文档上使用XPATH,其他浏览器通过创建XPATH解析器来实现

因此,选择所有“主要”元素如下:

xmlDoc.selectNodes("//major")
但一旦有了[0]索引选择器,您就可以更高效地使用:

xmlDoc.selectSingleNode("//major")
两者的结果相差很大(除了性能增益)

selectNodes将返回节点列表(该列表不是dom部分) 选择SingleNode将返回第一个节点(不是列表)

但是,您可以使用xpath在一个命令中完成最终选择,如:

xmlDoc.selectSingleNode("//major/*[1]/*[9]/*[0]")
/*[n] 表示法是可以的,但如果节点名是唯一的或两者的组合,则可以使用节点名


拥有可以根据需要添加.noValue、.text、.textContent、.nodeName的节点

是否使用“file://”URL?如果是这样的话,这可能就是问题所在——IE不认为“file://”页面共享一个域,因此它可以保护它们彼此不受影响。Chrome也做同样的事情。
“Personalized Tour/questions.xml”
不是有效的URL。没有空间了,谢谢。这个问题实际上是“file://”URL,看起来这个问题现在已经解决了。不幸的是,我现在似乎遇到了一个不同的问题。它似乎是在XML中加载的,但是当我尝试访问xmlDoc变量中的数据时,我的代码会抛出错误。你知道IE是否使用不同的xmldom语法吗?我现在拥有的代码:
var majorCats=xmlDoc.getElementsByTagName(“major”)[0];var printValue=majorCats.childNodes[1]。childNodes[9]。childNodes[0]。nodeValue