¿Hay alguna forma de, con ayuda de Javascript, enumerar todas las cookies asociadas con la página actual? Es decir, si no sé los nombres de las cookies pero quiero recuperar toda la información que contienen.¿Cómo puedo hacer una lista de todas las cookies para la página actual con Javascript?
Respuesta
Se pueden listar las cookies de dominio actual:
function listCookies() {
var theCookies = document.cookie.split(';');
var aString = '';
for (var i = 1 ; i <= theCookies.length; i++) {
aString += i + ' ' + theCookies[i-1] + "\n";
}
return aString;
}
pero no se puede enumerar las cookies para otros dominios para razones de seguridad
Debo haber sido torpe en mi descripción del problema. Lo que quería hacer era obtener una lista de todas las cookies creadas por cualquier documento html en el mismo catálogo. En el documento html, simplemente agregué el siguiente código: var x = document.cookie; window.alert (x); ... y pude ver todas las cookies que había creado. Lo siento si me expresé de una manera poco clara. Gracias por todas las respuestas rápidas. Ya me gusta este sitio :) – Speldosa
También esto no funciona cuando la cookie se ha establecido en valor '' 'httpOnly = true'''. –
Nicer salida a través de 'aString + = i + '' + decodeURIComponent (theCookies [i-1]) +" \ n ";' –
No, no hay. Solo puede leer información asociada con el dominio actual.
Maldita :) Ok ... las preguntas de seguimiento: 1. ¿Hay alguna manera de comprobar si existe una cookie específica (con un cierto nombre que usted conoce)? 2. ¿Existe algún tipo de manual para JavaScript donde, por ejemplo, se describa detalladamente la clase document.cookie? – Speldosa
Buen recurso: http://www.w3schools.com/JS/js_cookies.asp – tur1ng
Creo que también. Sin embargo, me gustaría conseguir algo equivalente a esto: http://download.oracle.com/javase/1.4.2/docs/api/overview-summary.html – Speldosa
(para el dominio, no la página como tur1ng señala)
No.
Los únicos navegadores API que te dan para manejar cookies es obtener y establecerlos a través de pares clave-valor. Todos los navegadores manejan las cookies solo por el nombre de dominio.
El acceso a todas las cookies para el dominio actual se realiza a través de document.cookie
.
Esto no funciona si ha configurado la cookie con httpOnly, que se recomienda, ya que ayuda a disminuir las consecuencias negativas de un ataque XSS. – Flimm
var x = document.cookie;
window.alert(x);
Esto muestra todas las cookies a las que tiene acceso el sitio actual. Si, por ejemplo, ha creado dos cookies "username = Frankenstein" y "username = Dracula", estas dos líneas de código mostrarán "username = Frankenstein; username = Dracula". Sin embargo, no se mostrará información como la fecha de caducidad.
Esto no funciona si ha configurado la cookie con 'httpOnly', que se recomienda, ya que ayuda a disminuir las consecuencias negativas de un ataque XSS. – Flimm
Esta función devolverá todas las cookies como un objeto (s) anidada:
getDocumentCookies = function() {
var theCookies = document.cookie.split(';'),
cookieObj = {},
tmp, tmpName, tmpVal;
for (var i = 1 ; i <= theCookies.length; i++) {
tmp = theCookies[i-1].split('=');
if (tmp[0] !== undefined && tmp[1] !== undefined) {
tmpName = decodeURIComponent(tmp[0].trim());
tmpVal = decodeURIComponent(tmp[1].trim());
if (tmpName.indexOf('[') > -1 && tmpName.indexOf(']') > -1) {
cookieObj[tmpName.split('[')[0]] = cookieObj[tmpName.split('[')[0]] || {};
cookieObj[tmpName.split('[')[0]][tmpName.split('[')[1].replace(']', '')] = tmpVal;
} else {
cookieObj[tmpName] = tmpVal;
}
}
}
return cookieObj;
};
Muchas personas ya han mencionado que document.cookie
te lleva todas las cookies (excepto los http-only
).
Voy a agregar un fragmento para estar al día con los tiempos.
document.cookie.split(';').reduce((cookies, cookie) => {
let [ name, value ] = cookie.split('=').map(c => c.trim());
cookies[name] = value;
return cookies;
}, {});
El fragmento devolverá un objeto con nombres de cookies como las claves con valores de cookie como valores.
- 1. Cómo borrar todas las cookies con jQuery
- 2. Todas Las cookies
- 3. ¿Cómo eliminar todas las cookies de UIWebView?
- 4. ¿Cómo puedo redireccionar a la página actual usando JavaScript?
- 5. Obtención de todas las variables globales (javascript) en una página
- 6. Javascript: ¿Cómo deshabilitar temporalmente todas las acciones en la página?
- 7. Necesito obtener todas las cookies del navegador
- 8. Cómo destruir las cookies en la página de actualización
- 9. Cómo hacer que Varnish ignore, no elimine las cookies
- 10. ¿Cómo puedo obtener el href de todas las imágenes en una página usando JavaScript?
- 11. Ouput todas las consultas de medios de la página en una lista
- 12. ¿Cómo obtener todas las cookies de CookieManager para Android?
- 13. ¿Cómo puedo hacer una lista de todas las funciones en mi script de nodo js?
- 14. ¿Cómo obtener HttpWebRequest.AllowAutoRedirect para establecer las cookies al hacer un GET/POST en la página redirigida?
- 15. ¿Cómo puedo hacer que JavaScript haga (produzca) una página nueva?
- 16. ¿Puedo hacer una lista de todas las fuentes de eventos registradas?
- 17. Acceda a todas las cookies almacenadas
- 18. Cómo conseguir todas las fuentes de imagen en una página determinada usando Javascript
- 19. ¿Cómo puedo hacer para recordar que votar con las cookies es más fácil que esto?
- 20. ¿Cómo comparto las cookies en 2 dominios con javascript?
- 21. ¿Puedo mostrar todas las cookies que configuré en PHP?
- 22. "salvar" el estado actual de la página usando javascript
- 23. Obtención de JavaScript para todas las propiedades
- 24. * Realmente * eliminar cookies con javascript
- 25. ¿Cómo hacer una captura de todas las rutas para manejar consultas de la '404 página no encontrada' para ASP.NET MVC?
- 26. ¿Cómo puedo configurar la página actual de un TPageControl?
- 27. ¿Cómo puedo obtener todas las permutaciones posibles de una lista con Common Lisp?
- 28. ¿Cómo marcar todas las casillas en forma actual con jquery?
- 29. Recuperando todas las cookies en Python
- 30. Múltiples instancias en una página con Javascript
Aclare si por "página determinada" se entiende "la página en la que se encuentra el usuario". La respuesta de DixonD es perfecta para las cookies de la página actual. Todos los demás dominios están fuera de los límites por razones de seguridad. –
Sí. Estoy hablando de la página en la que el usuario se encuentra actualmente. – Speldosa
OK. Edité el título y la pregunta para reflejar eso. La respuesta de DixonD es apropiada aquí. –