0

次の AJAX スクリプト (chat.php とonload=online()index.php を含む<body>) があります。これは、オンラインで Firefox と Chrome で正常に動作するユーザーを示しますが、IE8 でログインしようとすると、スクリプトが動作しません。

誰でもこれを解決するのを手伝ってもらえますか? AJAX スクリプトが間違っているか、IE と互換性がないのでしょうか?

function online(){
    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){
            document.getElementById("online").innerHTML = xmlhttp.responseText;
        }
    }

    xmlhttp.open("GET","proses-chat.php");
    xmlhttp.send();
    setTimeout("online()", 8000);
}

function autofocus(){
    document.form_login.elements['username'].focus();
}
4

1 に答える 1

0

1 日で解決:D、問題は ajax スクリプトではなく、setcookies() にあります

setcookie('username',$username,time()+36000,'http://$domain');
setcookie('password',$password,time()+36000,'http://$domain');
//$domain as define as $_SERVER['HTTP_HOST'] = localhost

これは以前の check_login.php での私の Cookie です。最後に、IE と Safari はローカルホストを読み取らず、次のように置き換えました。

setcookie('username',$username,time()+3600,'/');
setcookie('password',$password,time()+3600,'/');

つまり、Cookie はすべてのセッションとアドレスを受け入れ、IE と Safari でも動作します:D、Cookie を破棄することを忘れないでください

setcookie('username', '',time()-3600, '/');
setcookie('password', '',time()-3600, '/');

すべての返信と提案の前にthx、多分解決策は私のような問題を抱えている人を助けることができますthx

于 2012-11-27T11:23:34.933 に答える