Ajax работает на Firefox и Chrome, но не на то есть - PullRequest
0 голосов
/ 20 января 2012

Я делаю голоса с помощью 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();
}

На странице voice.php есть код:

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

Прекрасно работает с FireFox и Chrome. Попробовав с firebug, я получаю "true1" или "false0", но с IE это не работает, почему?

1 Ответ

4 голосов
/ 20 января 2012

Измените ваш ajax-запрос на POST вместо GET IE печально известен кешированием GET-запроса.

Не забудьте также обновить переменные PHP до $ _POST.Как только это будет сделано, проблема исчезнет.

...