ajax适用于firefox和chrome但不适用于ie

时间:2012-01-19 20:13:59

标签: ajax internet-explorer firefox google-chrome

我用ajax投票,每个IP都可以投票一次。 它有效,它不会多次添加到数据库。 现在我想立即向用户表明他投了票,所以我使用了这段代码:

function vote(id)
{
    var xmlhttp;
     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)
         {

            if (xmlhttp.responseText == "true1")
                document.getElementById("b"+id).innerHTML = parseInt(document.getElementById("b"+id).innerHTML) + 1;
         }
       }

    xmlhttp.open("GET","vote.php?id="+id,true);
    xmlhttp.send();
}

在vote.php页面中,这里是代码:

if (!(mysql_fetch_array(mysql_query("SELECT * FROM `votes` WHERE IP = '$IP'"))))
{
    echo "true1";
}
else
{
    echo "false0";
}

适用于FireFox和chrome。 尝试用萤火虫,我确实得到了" true1"或者" false0"但是使用IE它不起作用,为什么?

1 个答案:

答案 0 :(得分:4)

将你的ajax请求改为POST而不是GET IE因为GET的cach'ing请求而臭名昭着。

不要忘记将PHP变量更新为$ _POST。

一旦完成,问题就会消失。