0

私のユーザーは、Firefox ブラウザーを再度開くたびにセッションを再度開くように構成しているためです。「セッション」クッキーが戻ってきます。しかし、セッション Cookie が存在しないか、24 時間経過している場合、私の Web サイトには新しい認証が必要です。そのため、24 時間後にブラウザを再度開くたびに、期限切れの Cookie を手動で削除する必要があるというこの問題が発生しています。

これに対抗するために、ページに「ログアウト」リンクを配置するのにうんざりしていました。しかし、残念ながらそれは役に立ちません...

以下のコードで Cookie を削除しようとしましたが、Firefox が Cookie を保存する sqilte テーブルから Cookie を削除していないようです。次のコードが実行された後、Cookie が再表示されます.. (または削除されないのですか???) どうすればそれを達成できますか?

コード:

function Delete_Cookie( name, path, domain )
{
    document.cookie=name+"="+((path) ? ";path="+path:"")+((domain)?";domain="+domain:"")+";expires=Thu, 01 Jan 1970 00:00:01 GMT";
}

$("#Logout").click(function() {
    Delete_Cookie('SecOne','/','.mydomain.com');
    Delete_Cookie('SecTwo','/','.mydomain.com');
    alert("Bye");
});
4

3 に答える 3

0

何が問題なのかははっきりとは言えませんが、いくつかの可能性があります。

ドメイン名が間違っている可能性があります。

パスとドメイン名を使用しないテスト削除行を作成して、それが機能するかどうかを確認できます。その変更後に Cookie が削除された場合は、delete 行に作成した文字列か、渡されたパラメーターが間違っています。

また、コードの別のセクションが原因で Cookie が再表示される可能性もあります。この後に呼び出される他の Cookie 設定があるかどうかを確認してください。

または、Cookie を消去するにはページをリロードする必要があるかもしれません

于 2013-04-30T15:00:10.987 に答える
0

Cookie が HttpOnly Cookie の場合、HTTPS で保護された Web ページから読み取り/削除することはできません。Cookie が通常の Cookie の場合、以下の機能を使用して Cookie を削除できます。

function deleteCookie(keyName){
        var allcookies = document.cookie, i, cookiearray = null, name = null;
        cookiearray = allcookies.split(';');
        for (i = 0; i < cookiearray.length; i++) {
            name = cookiearray[i].split('=')[0].trim();
            if (name === keyName) {
                document.cookie = name + '=000;expires=Thu, 1 Jan 1970 00:00:00 UTC; path=/';
            }
        }
    }

注: セッション Cookie は、ブラウザーを閉じても削除できません。これは、Chrome ブラウザの既知のバグです。以下のリンクを参照 してくださいChromeのCookieの問題

于 2015-04-29T18:03:27.357 に答える
0

これが古いスレッドであることは知っていますが、過去の時間でクッキーを設定しようとし続けたのと同じ問題があり、有効期限が切れてFFクッキーマネージャーに表示されないと考えていました.

Cookie を将来有効期限が切れるように設定しましたが、値を空白にすると削除されました。理由がわからない。

setcookie(mycookie,"", time()+5000,'/');

FireFox v40.0.3 の使用 Firefox
でいくつかのバグが記録されているようで、Cookie の有効期限の処理に問題があります。

于 2015-09-22T00:30:05.307 に答える