簡體   English   中英

為什么Cookie未被刪除?

[英]Why is cookie not getting deleted?

我已經通過javascript創建了一個cookie。 我要在注銷時清除。 該站點正在SSL上運行。 以下是我用於cookie創建和刪除目的的JS代碼。 請注意,它是一個普通的cookie(非http,非安全且盡可能簡單)。 下面是創建cookie的函數,該函數創建cookie很好,此cookie是會話cookie,所有其他詳細信息都是用於創建此cookie的參數。

login: function () {
"use strict";
var cookieKeys, cookieValues;
if (cookieExists(this.systemPolicyCookie)) {
    cookieKeys = this.activeUserCookieName + '=';
    cookieValues = 'Email=' + this.activeUserCookieValues.Email + '&';
    cookieValues += 'UserId=' + this.activeUserCookieValues.UserId;
    cookieKeys += encodeURIComponent(cookieValues) + cookieDelimiter;
    cookieKeys += 'domain=' + this.activeUserCookieDomain + cookieDelimiter + cookiePath;
    document.cookie = cookieKeys;
    document.location.href = document.location.protocol + '//' + document.location.host + '/User/Landing/';
} else {
    alert('System policies are missing, please login online.');
    document.location.href = document.location.protocol + '//' + document.location.host;
}

},

以下代碼塊應刪除上面創建的cookie,該cookie無效。

logout: function () {
"use strict";
var cookies = cookieArray(),
    name;
for (name in cookies) {
    if (name != null && (this.systemPolicyCookie.toString()
        .toLowerCase() !== name.toString()
        .toLowerCase())) {
        document.cookie = name + '="";-1; path=/; expires=Thu, 01 Jan 1970 00:00:00 GMT';
    }
}
document.location.href = document.location.protocol + '//' + document.location.host;

},

cookieArray()函數返回所有cookie的列表,如下所示:

var cookieArray = function () {
"use strict";
var cookies = {},
counter,
split,
nameValue;
if (document.cookie && document.cookie !== '') {
    split = document.cookie.split(';');
    for (counter = 0; counter < split.length; counter++) {
        nameValue = split[counter].split("=");
        nameValue[0] = nameValue[0].replace(/^ /, '');
        cookies[decodeURIComponent(nameValue[0])] = decodeURIComponent(nameValue[1]);
    }
}
return cookies;

您能幫我使cookie刪除代碼正常工作嗎,否則我將不得不關閉瀏覽器(Ux錯誤)

你使用的是什么瀏覽器??

據我所知,IE會緩存cookie,因此它們將被刪除,直到您重新啟動瀏覽器為止。 我不確定FireFox或Chrome是否會執行相同的操作

您是否嘗試過在Chrome和/或FireFox中測試代碼?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM