【发布时间】:2012-04-21 10:46:39
【问题描述】:
我正在设计一个在线调查,其中一个主要功能是问题存储在外部 XML 文件中,每次都会加载随机问题。虽然我的代码在 Firefox 中运行良好,但当我尝试在 Internet Explorer 8 中加载页面时出现“访问被拒绝”错误。我已将问题隔离到以下代码部分:
//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 的安全设置。是这样吗,还是有更多的原因?
感谢您的帮助。
【问题讨论】:
-
您使用的是“file://”网址吗?如果是这样,那可能就是问题所在 - 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;
标签: javascript internet-explorer-8 xmlhttprequest xmldom