Hoe verwijder ik een cookie?

Is mijn functie om een cookie te maken correct? Hoe verwijder ik de cookie aan het begin van mijn programma? is er een eenvoudige codering?

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);
}

Antwoord 1, autoriteit 100%

Probeer dit:

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";
  }
}

U kunt get_cookie()als volgt definiëren:

function get_cookie(name){
    return document.cookie.split(';').some(c => {
        return c.trim().startsWith(name + '=');
    });
}

Antwoord 2, autoriteit 36%

Hier een goede link op 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;';  
}

Antwoord 3, autoriteit 10%

zou dit werken?

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

Ik weet dat Max-Ageervoor zorgt dat de cookie een sessiecookie is in IE bij het maken van de cookie. Ik weet niet zeker hoe het werkt bij het verwijderen van cookies.


Antwoord 4, autoriteit 5%

Hier is een implementatie van een verwijder cookiefunctie met unicode-ondersteuning van 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");

Als je AngularJs gebruikt, probeer dan $cookies.remove(hieronder gebruikt het een vergelijkbare aanpak):

$cookies.remove('cookieName');

Antwoord 5, autoriteit 5%

U kunt dit doen door de vervaldatum in te stellen op gisteren.

het instellen op “-1” werkt niet. Dat markeert een cookie als sessioncookie.


Antwoord 6, Autoriteit 4%

Enkele van de andere oplossingen werken misschien niet als u de cookie handmatig hebt gemaakt.

Hier is een snelle manier om een ​​cookie te verwijderen:

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

Antwoord 7, Autoriteit 3%

Om een ​​cookie te verwijderen, stel ik het opnieuw met een lege waarde en vervalt in 1 seconde.
In detail gebruik ik altijd een van de volgende smaken (ik heb de neiging om de tweede te verkiezen):

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);
    }

Gebruik:

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});
    }

Gebruik:

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

Antwoord 8, Autoriteit 2%

Ik had moeite met het verwijderen van een cookie gemaakt via Javascript en nadat ik de host heeft toegevoegd die het werkte (blader de onderstaande code naar rechts om de location.host) te bekijken. Na het opruimen van de cookies op een domein, probeer dan het volgende om de resultaten te zien:

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);}
 }
}

Antwoord 9

Voor mensen die gewoon 1 regel code willen om een ​​cookie te verwijderen:

Als u een cookie hebt gemaakt, bijvoorbeeld in een webbrowserconsole met document.cookie = "test=hello"

U kunt het verwijderen met:

document.cookie = "test=;expires=" + new Date(0).toUTCString()

of als u liever de UTC-datum rechtstreeks schrijft:

document.cookie = "test=;expires=Thu, 01 Jan 1970 00:00:00 GMT"

Als u op een ander pad bent dan de cookie (bijvoorbeeld als u een cookie wilt verwijderen die op alle paden wordt gebruikt), kunt u path=/;na test=;en als u op een ander domein bent (bijvoorbeeld wanneer een cookie is ingesteld voor alle subdomeinen met behulp van .example.comin plaats van www.example.com), U kunt domain=.example.com;na test=;.

Update: in plaats van expires=..., met Max-Age=0zoals in andere antwoorden werkt ook (getest met firefox).

Other episodes