不能在IE 8中使用xmlhttp.open(" GET"," food.xml",false)

时间:2014-06-05 17:13:41

标签: javascript html xml internet-explorer xmlhttprequest

我正在尝试从本地计算机上的XML文件中获取信息。这是一个成功的Firefox,但由于某种原因它不能与IE8一起工作,它必须在IE7 +上运行。

在我将此行添加到我的.js文件之前,IE不报告错误:

xmlhttp.open("GET","food.xml",false);

我使用W3schools作为参考来构建我的脚本,我主要使用他们在这里做的所有事情:http://www.w3schools.com/ajax/tryit.asp?filename=tryajax_database

这整个块可以在Firefox上运行,但不适用于IE,如果可以提供任何帮助

xmlhttp=new XMLHttpRequest();
xmlhttp.open("GET","food.xml",false);
xmlhttp.send();
xmlDoc=xmlhttp.responseXML;

我很抱歉,我知道这一定已经得到了解答,但我没有适当的词汇来查找这个具体问题。

1 个答案:

答案 0 :(得分:0)

原生XMLHttpRequest支持直到IE8才进入IE。要在IE7中使用XHR,您必须使用ActiveX对象

这是一个很好的帮手功能:

function getXMLHttpRequest() 
{
    if (window.XMLHttpRequest) {
        return new window.XMLHttpRequest;
    }
    else {
        try {
            return new ActiveXObject("MSXML2.XMLHTTP.3.0");
        }
        catch(ex) {
            return null;
        }
    }

您收到错误的原因是因为Internet Explorer的本机XMLHTTPRequest对象仅允许对HTTP和HTTPS的请求;对FILE,FTP或其他URI方案的请求被阻止。

要在IE中阅读有关XMLHttpRequests的其他信息,请查看MSDN页面:http://msdn.microsoft.com/en-us/library/ie/ms535874(v=vs.85).aspx