Internet Explorer中的Ajax responseText Null?

时间:2011-03-12 19:02:05

标签: javascript ajax internet-explorer

我有一些简单的ajax代码。我想要做的就是将一个php页面加载到一个容器中但是在Internet Explorer中我收到错误: SCRIPT5007:无法设置属性'innerHTML'的值:object为null或undefined。这意味着Internet Explorer将xmlhttp.responseText视为null。它以我尝试获取ResponseText的任何方式执行此操作。继承我的代码:

 function changeSort(type, order)
    {
    var xmlhttp;
    var container = document.getElementById("content");

    if (window.XMLHttpRequest)
      {// code for IE7+, Firefox, Chrome, Opera, Safari
      xmlhttp=new XMLHttpRequest();
      }
    else
      {// code for IE6, IE5
      xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
      }
    xmlhttp.onreadystatechange=function()
      {
      if (xmlhttp.readyState==4 && xmlhttp.status==200)
        {
      container.innerHTML = xmlhttp.responseText; //Error Line
        }
      }
xmlhttp.open("GET","Scripts/tag.php?sort=ASC&&tag=All%20Games&&type="+type,true);
xmlhttp.send();
}

任何想法?

1 个答案:

答案 0 :(得分:1)

  

无法设置属性'innerHTML'的值:object为null或undefined。这意味着Internet Explorer将xmlhttp.responseText视为null。

不,这意味着Internet Explorer将container视为null。如果您尝试在null上设置innerHTML值,则会将其强制转换为字符串'null'

在调用content时,IE可能找不到文档中标识为changeSort的任何元素。

"Scripts/tag.php?sort=ASC&&tag=All%20Games&&type="+type

你确定你的意思是双安瓿吗?