我有一个关于使用javascript在IE中读取XML的问题。我有以下javascript,它应该读取一个XML文件。但是,我只能在FireFox中读取XML文件,而不能读取IE。任何人都可以帮助我吗?
它显示'访问被拒绝'
function loadXMLDoc(location) { // location = './abc/abc.xml'
if (window.XMLHttpRequest) {
xhttp=new XMLHttpRequest();
}
else {
xhttp= new ActiveXObject("Microsoft.XMLHTTP");
}
xhttp.open("GET",location,false); // IE mention the error in here
xhttp.send();
return xhttp.responseXML;
}
p.s我在这里找到了这个例子' http://www.w3schools.com/dom/tryit.asp?filename = try_dom_loadxml'
答案 0 :(得分:0)
我的猜测是你没有使用完全限定的URL。试试这个:
var location = 'http://yoursite.com/abc/abc.xml';
你写它的方式,IE可能认为这是一个本地文件,而不是在服务器上。
编辑:如果要加载本地文件,请尝试以下操作:
var location = 'file:///path/to/abc/abc.xml'; // linux
或
var location = 'C:/path/to/abc/abc.xml'; // windows (I think?)
如果您仍然遇到IE问题,可能与IE的安全设置有关。关闭它们或“低”或其他什么,然后再试一次。
编辑2:根据此answer,Chrome浏览器不允许ajax请求提交:///资源认为本地请求与同源策略冲突。我猜IE实现了相同的约束。没有解决方法,因此:您需要在localhost上运行服务器。 (但是,Firefox 确实允许这些请求。)