Necesito eliminar las cookies del lado del cliente con el mismo nombre pero con diferentes rutas. ¿Cuál es la mejor manera de hacer esto en javascript?Eliminar cookies con el mismo nombre pero diferentes rutas
Respuesta
Simplemente especifique la misma ruta de la cookie que desea eliminar, dándole una caducidad pasada.
document.cookie = 'name=value1; path=/';
document.cookie = 'name=value2; path=/path/';
alert(document.cookie); // name=value1; name=value2
document.cookie = 'name=; path=/path/; expires=' + new Date(0).toUTCString();
alert(document.cookie); // name=value1
Cambiar para que expire la cookie con un camino de /
será todavía sólo expirará una de las galletas - la ruta dada tiene que coincidir con el camino trazado:
document.cookie = 'name=; path=/; expires=' + new Date(0).toUTCString();
alert(document.cookie); // name=value2
para eliminar tanto, se Tendrá que expirará cada uno con su camino:
document.cookie = 'name=; path=/; expires=' + new Date(0).toUTCString();
document.cookie = 'name=; path=/path/; expires=' + new Date(0).toUTCString();
alert(document.cookie); // {blank}
Ahora, estos ejemplos se supone que está navegando /path/
o un subdirectorio de la misma.
[editar]
Para eliminar a granel, intentar algo como esto:
function expireAllCookies(name, paths) {
var expires = new Date(0).toUTCString();
// expire null-path cookies as well
document.cookie = name + '=; expires=' + expires;
for (var i = 0, l = paths.length; i < l; i++) {
document.cookie = name + '=; path=' + paths[i] + '; expires=' + expires;
}
}
expireAllCookies('name', ['/', '/path/']);
Demostración: http://jsfiddle.net/M2dZ3/
Puede operaciones de búsqueda de ruta también falsos por la división y la iteración de window.location.pathname
:
function expireActiveCookies(name) {
var pathname = location.pathname.replace(/\/$/, ''),
segments = pathname.split('/'),
paths = [];
for (var i = 0, l = segments.length, path; i < l; i++) {
path = segments.slice(0, i + 1).join('/');
paths.push(path); // as file
paths.push(path + '/'); // as directory
}
expireAllCookies(name, paths);
}
Demostración: http://jsfiddle.net/M2dZ3/2/
Se puede establecer una cookie con los mismos parámetros, pero una fecha en el pasado:
document.cookie =
'ppkcookie2=another test; expires=Fri, 3 Aug 2001 20:47:11 UTC; path=/'
ver algunos valiosa información on quirksmode
[Editar] para eliminar las cookies con el mismo nombre, que pueda Proveedores:
function delete_cookie (cookie_name)
{
var cookie_date = new Date (); // current date & time
cookie_date.setTime (cookie_date.getTime() - 1);
document.cookie = cookie_name += "=; expires=" + cookie_date.toGMTString();
}
¿Eso también eliminará las cookies que no tienen Ruta "/"? – JKown
quiere decir que quiere eliminar todas las cookies con el mismo nombre, intente con el código de mi respuesta editada – JMax
La preocupación es que eliminará demasiadas cookies. Pero, caducar con 'path = /' debe dejar los otros intactos. –
- 1. JAXB @XmlElements, diferentes tipos pero el mismo nombre?
- 2. herencia múltiple de python de diferentes rutas con el mismo nombre de método
- 3. ¿Cómo manejar múltiples cookies con el mismo nombre?
- 4. La biblioteca incluye rutas con el mismo nombre de encabezado
- 5. ¿Puede relajar especificar un conjunto desordenado de elementos con el mismo nombre, pero con diferentes atributos?
- 6. ¿Cómo puede el JPA reconocer dos clases con el mismo nombre pero en paquetes diferentes?
- 7. Composición con el mismo rasgo, pero diferentes parámetros de tipo
- 8. Eclipse: varios proyectos con el mismo nombre pero ubicación diferente
- 9. ¿Cómo acceder a los valores de las cookies en diferentes rutas del mismo dominio utilizando PHP?
- 10. Entity Framework CODIGO - dos entidades con el mismo nombre pero en diferentes espacios de nombres
- 11. método con el mismo nombre y diferentes parámetros en Ruby
- 12. ¿Cómo encontrar archivos duplicados con el mismo nombre pero en diferentes casos que existen en el mismo directorio en Linux?
- 13. NHibernate DuplicateMappingException cuando dos clases tienen el mismo nombre pero diferentes espacios de nombres
- 14. Mismo nombre de controlador en diferentes áreas
- 15. C++: Diferentes clases con el mismo nombre en diferentes unidades de traducción
- 16. eclipse, dos archivos diferentes con el mismo nombre en diferentes directorios
- 17. parámetros con el mismo nombre
- 18. * Realmente * eliminar cookies con javascript
- 19. ¿Qué sucede cuando dos anotaciones diferentes tienen el mismo nombre?
- 20. Rspec y rutas con nombre
- 21. Posible tener el mismo contrato, el mismo enlace, la misma dirección, pero diferentes puertos?
- 22. Diferentes VirtualHosts con el mismo puerto
- 23. Automake y archivos con el mismo nombre
- 24. ¿Por qué diferentes encabezados tienen el mismo nombre?
- 25. ¿Por qué las funciones heredadas múltiples con el mismo nombre pero diferentes firmas no se tratan como funciones sobrecargadas?
- 26. ¿Cómo se definen varios elementos con el mismo nombre, pero diferentes tipos en xsd: Elemento de elección?
- 27. Esquema XML para elementos con el mismo nombre pero con una subestructura diferente según el contexto
- 28. rutas con nombre de cadena con objeto
- 29. Dos variables con el mismo nombre y tipo, en dos archivos .c diferentes, compilar con gcc
- 30. ¡Implementando dos juegos diferentes! aplicaciones en el mismo nombre de host
Entonces, si la ruta puede contener 6 valores diferentes, ¿debo usar 6x document.cookie con la ruta correcta? – JKown
@JKown Básicamente. Sin embargo, te sugiero que hagas un bucle sobre las rutas para que solo tengas 1 declaración 'document.cookie'. Ver mi edición para una opción. –
Gracias, eso funciona para mí. – JKown