¿Eliminar cookie por nombre?

Resuelto Charlie asked hace 12 años • 9 respuestas

¿ Cómo puedo eliminar una cookie específica con el nombre roundcube_sessauth?

¿No debería ser lo siguiente?

function del_cookie(name) {
    document.cookie = 'roundcube_sessauth' + 
    '=; expires=Thu, 01-Jan-70 00:00:01 GMT;';
} 

Y luego:

<a href="javascript:del_cookie(name);">KILL</a>

¿ Matar la roundcube_sessauthgalleta?

Charlie avatar May 15 '12 08:05 Charlie
Aceptado

Debe definir la ruta en la que existe la cookie para asegurarse de que está eliminando la cookie correcta.

function set_cookie(name, value) {
  document.cookie = name +'='+ value +'; Path=/;';
}
function delete_cookie(name) {
  document.cookie = name +'=; Path=/; Expires=Thu, 01 Jan 1970 00:00:01 GMT;';
}

Si no especifica la ruta, el navegador establecerá una cookie relativa a la página en la que se encuentra actualmente, por lo que si elimina la cookie mientras está en una página diferente, la otra cookie continúa existiendo.

Edición basada en el comentario de @Evan Morrison. Tenga en cuenta que, en algunos casos, para identificar la cookie correcta, Domainse requiere el parámetro. Generalmente se define como Domain=.yourdomain.example. Colocar un punto delante de su nombre de dominio significa que esta cookie puede existir en cualquier subdominio ( wwwtambién cuenta como subdominio).

Además, como se menciona en la respuesta de @RobertT, HttpOnlylas cookies no se pueden eliminar con JavaScript en el lado del cliente.

emii avatar Jun 02 '2014 13:06 emii

Para eliminar una cookie, establezca la expiresfecha en algo pasado. Una función que haga esto sería.

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

Luego, para eliminar una cookie llamada roundcube_sessauthsimplemente hazlo.

delete_cookie('roundcube_sessauth');
 avatar May 15 '2012 01:05

//si se pasa exMins=0, se eliminará tan pronto como lo cree.

function setCookie(cname, cvalue, exMins) {
    var d = new Date();
    d.setTime(d.getTime() + (exMins*60*1000));
    var expires = "expires="+d.toUTCString();  
    document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/";
}

setCookie('cookieNameToDelete','',0) // this will delete the cookie.
Kishor Patil avatar Nov 17 '2016 16:11 Kishor Patil