it-swarm.com.de

Wie lösche ich ein Cookie?

Ist meine Funktion zum Erstellen eines Cookies korrekt? Wie lösche ich den Cookie zu Beginn meines Programms? Gibt es eine einfache Codierung?

function createCookie(name,value,days)
function setCookie(c_name,value,1) {
  document.cookie = c_name + "=" +escape(value);
}

setCookie('cookie_name',mac);

function eraseCookie(c_name) {
  createCookie(cookie_name,"",-1);
}
293
kennedy

Versuche dies:

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

Oder:

function delete_cookie( name ) {
  document.cookie = name + '=; expires=Thu, 01 Jan 1970 00:00:01 GMT;';
}
307
ACP

Hier ein guter Link zu Quirksmode .

function setCookie(name,value,days) {
    var expires = "";
    if (days) {
        var date = new Date();
        date.setTime(date.getTime() + (days*24*60*60*1000));
        expires = "; expires=" + date.toUTCString();
    }
    document.cookie = name + "=" + (value || "")  + expires + "; path=/";
}
function getCookie(name) {
    var nameEQ = name + "=";
    var ca = document.cookie.split(';');
    for(var i=0;i < ca.length;i++) {
        var c = ca[i];
        while (c.charAt(0)==' ') c = c.substring(1,c.length);
        if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
    }
    return null;
}
function eraseCookie(name) {   
    document.cookie = name+'=; Max-Age=-99999999;';  
}
98
Luca Matteis

würde das funktionieren

function eraseCookie(name) {
    document.cookie = name + '=; Max-Age=0'
}

Ich weiß, dass Max-Age das Cookie beim Erstellen des Cookies zu einem Sitzungscookie in IE macht. Nicht sicher, wie es funktioniert, wenn Cookies gelöscht werden.

27
Collin Anderson

Sie können dies tun, indem Sie das Ablaufdatum auf gestern setzen.

Das Setzen auf "-1" funktioniert nicht. Das markiert ein Cookie als Session-Cookie.

15
Markus Nordhaus

Hier ist eine Implementierung einer Cookie löschen Funktion mit Unicode-Unterstützung von Mozilla:

function removeItem(sKey, sPath, sDomain) {
    document.cookie = encodeURIComponent(sKey) + 
                  "=; expires=Thu, 01 Jan 1970 00:00:00 GMT" + 
                  (sDomain ? "; domain=" + sDomain : "") + 
                  (sPath ? "; path=" + sPath : "");
}

removeItem("cookieName");

Wenn Sie AngularJs verwenden, versuchen Sie es mit $ cookies.remove (darunter folgt ein ähnlicher Ansatz ):

$cookies.remove('cookieName');
14

Um einen Cookie zu löschen, habe ich ihn erneut mit einem leeren Wert gesetzt und er läuft in 1 Sekunde ab. Im Detail verwende ich immer einen der folgenden Geschmacksrichtungen (ich bevorzuge eher den zweiten):

1.

    function setCookie(key, value, expireDays, expireHours, expireMinutes, expireSeconds) {
        var expireDate = new Date();
        if (expireDays) {
            expireDate.setDate(expireDate.getDate() + expireDays);
        }
        if (expireHours) {
            expireDate.setHours(expireDate.getHours() + expireHours);
        }
        if (expireMinutes) {
            expireDate.setMinutes(expireDate.getMinutes() + expireMinutes);
        }
        if (expireSeconds) {
            expireDate.setSeconds(expireDate.getSeconds() + expireSeconds);
        }
        document.cookie = key +"="+ escape(value) +
            ";domain="+ window.location.hostname +
            ";path=/"+
            ";expires="+expireDate.toUTCString();
    }

    function deleteCookie(name) {
        setCookie(name, "", null , null , null, 1);
    }

Verwendungszweck:

setCookie("reminder", "buyCoffee", null, null, 20);
deleteCookie("reminder");

2

    function setCookie(params) {
        var name            = params.name,
            value           = params.value,
            expireDays      = params.days,
            expireHours     = params.hours,
            expireMinutes   = params.minutes,
            expireSeconds   = params.seconds;

        var expireDate = new Date();
        if (expireDays) {
            expireDate.setDate(expireDate.getDate() + expireDays);
        }
        if (expireHours) {
            expireDate.setHours(expireDate.getHours() + expireHours);
        }
        if (expireMinutes) {
            expireDate.setMinutes(expireDate.getMinutes() + expireMinutes);
        }
        if (expireSeconds) {
            expireDate.setSeconds(expireDate.getSeconds() + expireSeconds);
        }

        document.cookie = name +"="+ escape(value) +
            ";domain="+ window.location.hostname +
            ";path=/"+
            ";expires="+expireDate.toUTCString();
    }

    function deleteCookie(name) {
        setCookie({name: name, value: "", seconds: 1});
    }

Verwendungszweck:

setCookie({name: "reminder", value: "buyCoffee", minutes: 20});
deleteCookie("reminder");
9
Luca Borrione

Ich hatte Probleme beim Löschen eines Cookies, das über JavaScript erstellt wurde, und nachdem ich den Host hinzugefügt habe, hat es funktioniert (scrollen Sie den Code unten rechts, um den location.Host zu sehen). Versuchen Sie nach dem Löschen der Cookies auf einer Domain Folgendes, um die Ergebnisse anzuzeigen:

if (document.cookie.length==0)
{
 document.cookie = 'name=example; expires='+new Date((new Date()).valueOf()+1000*60*60*24*15)+'; path=/; domain='+location.Host;

 if (document.cookie.length==0) {alert('Cookies disabled');}
 else
 {
  document.cookie = 'name=example; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/; domain='+location.Host;

  if (document.cookie.length==0) {alert('Created AND deleted cookie successfully.');}
  else {alert('document.cookies.length = '+document.cookies.length);}
 }
}
6
John

Einige der anderen Lösungen funktionieren möglicherweise nicht, wenn Sie das Cookie manuell erstellt haben.

So können Sie ein Cookie schnell löschen:

document.cookie = 'COOKIE_NAME=; Max-Age=0; path=/; domain=' + location.Host;
0
Lemmings19