IE8中的AJAX请求失败

时间:2012-09-12 15:55:56

标签: php ajax

按照惯例,我发现在使用IE8时我的代码存在不兼容问题。我有3层AJAX下拉菜单系统,每个系统从MYSQL数据库中获取结果,并且在所有浏览器中都能正常工作。然而,第三个下拉然后触发最终的AJAX请求,它在所有浏览器和所有版本(我已经测试过)中工作正常,但IE8除外,它不会改变我的最终div的内容,只会出现错误。

我的AJAX函数由showResult(this.value)调用:

    function showResult(str)
    {
    if (str=="")
    {
       document.getElementById("resultChange").innerHTML="";
       return;
    }
    if (window.XMLHttpRequest)
    {
        xmlhttp=new XMLHttpRequest();
    }
    else
      {
      xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
      }
    xmlhttp.onreadystatechange=function()
      {
      if (xmlhttp.readyState==4 && xmlhttp.status==200)
        {
        document.getElementById("resultChange").innerHTML=xmlhttp.responseText;
        }
      }
    xmlhttp.open("GET","checker.php?z="+str,true);
    xmlhttp.send();
    }

来自checker.php的相关代码:

    if(isset($_GET["z"])){
    $z=$_GET["z"];

    require_once('db connection here');

    $sql3="mysql query here";

    $result3 = mysql_query($sql3);

    $count3 = mysql_num_rows($result3);
    if($result3 > 0){

    while($row3 = mysql_fetch_array($result3))
      {
      echo "Display this if it works";  }

    }
    else
    { echo  'Error';}

    unset($_GET["z"]);  
    mysql_close(); 
     }

而且,如果重要,这就是受影响的DIV:

    <div id="resultChange" align="left" valign="top" style="margin: 0px;">Test
    </div>

页面上的其他AJAX请求在它们的函数调用和checker.php文件中的相关部分都是相同的,除了它们的$ _GET赋值和div的id之外。哦,即使在IE8中它们都能正常工作!

我希望有人可以提供帮助,因为我找不到任何错误!

谢谢,乔

0 个答案:

没有答案