Javascript 无法将xmlhttp.open(“GET”、“food.xml”、false)与IE 8一起使用

Javascript 无法将xmlhttp.open(“GET”、“food.xml”、false)与IE 8一起使用,javascript,html,xml,internet-explorer,xmlhttprequest,Javascript,Html,Xml,Internet Explorer,Xmlhttprequest,我正在尝试从本地计算机上的XML文件中获取信息。firefox取得了成功,但由于某些原因,它不能与IE8协同工作,必须在IE7+上运行 IE不会报告错误,直到我将这一行添加到.js文件: xmlhttp.open("GET","food.xml",false); 我使用W3schools作为参考建立了我的脚本,并且我使用的大部分内容都与这里的一样: 如果这有什么帮助的话,整个模块可以在firefox上运行,但不能在IE上运行 xmlhttp=new XMLHttpRequest(); xmlh

我正在尝试从本地计算机上的XML文件中获取信息。firefox取得了成功,但由于某些原因,它不能与IE8协同工作,必须在IE7+上运行

IE不会报告错误,直到我将这一行添加到.js文件:

xmlhttp.open("GET","food.xml",false);
我使用W3schools作为参考建立了我的脚本,并且我使用的大部分内容都与这里的一样:

如果这有什么帮助的话,整个模块可以在firefox上运行,但不能在IE上运行

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

很抱歉,我知道这肯定已经得到了回答,但我没有合适的词汇表来查找这个特定问题。

直到IE8,本机XMLHttpRequest支持才出现在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的请求;对文件、FTP或其他URI方案的请求被阻止


要阅读IE中有关XMLHttpRequests的更多信息,请查看MSDN页面:

IE不支持XMLHttpRequest。对于此特定浏览器,您必须使用ActiveX。您可能希望检查以下答案:的可能重复,但它在w3schools示例中有效!你怎么知道的?谢谢你的链接,顺便说一句,我正在阅读。哇!我刚刚查看了MSDN页面,似乎IE7+支持XMLHttpRequest,所以您的代码应该在IE8中工作。所以我不知道问题出在哪里。您得到了什么错误?可能是因为我正在处理本地文件吗?因为它适用于W3schools示例,并且它们的文件也是本地的,但它是一个web服务器,所以我不确定。请帮忙:它不工作,也不做任何新的事情。我正在使用IE8,我确信xhttp=newXMLHttpRequest;行工作正常,但它是xmlhttp.openGET,food.xml,false;行不通。您有xhtp=new-XMLHttpRequest;,但稍后您将使用xmlhttp。只是变量名不匹配。你是对的,但这是一个复制粘贴在这个网站上的错误,我使用xmlhttp无处不在。很抱歉给你带来了困惑。