Javascript IE喜欢xmlhttprequest的哪些方面?

Javascript IE喜欢xmlhttprequest的哪些方面?,javascript,ajax,Javascript,Ajax,除了IE8,我现在在所有浏览器中都有以下代码。。我读到如果我使用xhttp=newactivexobjectmicrosoft.XMLHTTP;行它应该为IE工作,但我不确定..任何人都有让它与ie8一起工作的经验 function loadXMLDoc(dname) { if (window.XMLHttpRequest) { xhttp=new XMLHttpRequest(); } else { xhttp=new ActiveXObject("Microsoft.XMLHTTP

除了IE8,我现在在所有浏览器中都有以下代码。。我读到如果我使用xhttp=newactivexobjectmicrosoft.XMLHTTP;行它应该为IE工作,但我不确定..任何人都有让它与ie8一起工作的经验

function loadXMLDoc(dname)
{
if (window.XMLHttpRequest)
 {
 xhttp=new XMLHttpRequest();
 }
else
 {
 xhttp=new ActiveXObject("Microsoft.XMLHTTP");
 }
xhttp.open("GET",dname,false);
xhttp.send();
return xhttp.responseXML;
} 

var xmlDoc = loadXMLDoc("nhl_standings_xml.xml");
var x = xmlDoc.getElementsByTagName("nhlall");

嗯,代码看起来不错。你试过请求吗?如果您有xhttp.openGET、dname、false;,它是同步的。将该false更改为true,则您是异步的。此外,变量xhttp没有正确声明,如果我错了,请更正我。作为一名Python程序员,我有一半的时间都说不出来

请尝试以下代码:

function loadXML(url)
{
  var xmlHttp;

  try
  {
    // Firefox, Opera 8.0+, Safari
    xmlHttp = new XMLHttpRequest();
  } catch (e) {
    // Internet Explorer
    try
    {
      xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
      try
      {
        xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
      } catch (e) {
        return false;
      }
    }
  }

  xmlHttp.onreadystatechange = function()
  {
    if(xmlHttp.readyState == 4)
    {
      return xmlHttp.responseText;
    }
  }

  xmlHttp.open("GET", url, true);
  xmlHttp.send(null);
}

var xmlDoc = loadXML("nhl_standings_xml.xml");
var x = xmlDoc.getElementsByTagName("nhlall");

我建议您使用这个最小的ajax引擎

高利贷的一个例子

ajax POST请求

Ajax.call('GET','http://localhost/index.php',function(data) {
{
 //doing stuff with the data response
},'ASD');
调用参数:URL、回调、POST


这太容易了。

请尝试将此作为请求启动程序:

  if      (window.XMLHttpRequest) return new window.XMLHttpRequest();
  else if (window.ActiveXObject) {
     // the many versions of IE's XML fetchers
     var AXOs = [
        'MSXML2.XMLHTTP.6.0',
        'MSXML2.XMLHTTP.5.0',
        'MSXML2.XMLHTTP.4.0',
        'MSXML2.XMLHTTP.3.0',
        'MSXML2.XMLHTTP',
        'Microsoft.XMLHTTP',
        'MSXML.XMLHTTP'
     ];
     for (var i = 0; i < AXOs.length; i++) {
        try     { return new ActiveXObject(AXOs[i]); }
        catch() { continue; }
     }
     return null;
  }

上面的顺序应该是从最好到最差的正确顺序,顺便说一句。

IE8和IE7。到底是什么不起作用?我猜是使用了同步请求还是没有使用库,但谁知道呢。拜托,你不需要jQuery来完成一个简单的AJAX请求。jQuery让人们无法理解JavaScript的基本过程……变量没有定义。。在所有其他浏览器中工作。。我在apache上本地托管了这些文件。。那么jquery在理论上是否仍然有效?变量声明为OK。你不必把var放在前面,但我放了。。并将假变为真。。还是一样的结果。。你能解释一下将它从同步改为异步做了什么吗?引自一些随机的地方:应该避免使用同步模式发出请求。这些请求将导致浏览器为用户锁定,直到请求返回。在服务器繁忙且响应需要一段时间的情况下,用户的浏览器和操作系统可能不允许执行任何其他操作。如果没有正确接收到响应,浏览器可能会继续阻塞,直到请求超时。好的,我想我知道问题出在哪里了。您的函数没有等待200消息success=200。我已经更新了答案。你能告诉我在代码中把xml页面的url放在哪里吗?还有,从上面看,哪个变量等于xmlDoc?这不就是我在上面所说的吗?很抱歉我知道这很容易,但我想不出来。。这段代码与我最初发布的代码有什么不同?在apache上运行时,每个浏览器似乎都能正常工作。。但是ie8和以前的版本仍然在打嗝。我试着刷新缓存和所有东西