Estoy utilizando el plugin de jQuery Cookie ( descarga y de demostración y código fuente con los comentarios ) para establecer y leer una cookie. Estoy desarrollando la página en mi máquina local .
El siguiente código establecerá correctamente una cookie en FireFox 3, IE 7 y Safari (PC). Pero si el navegador es Google Chrome Y la página es un archivo local , no funciona.
$.cookie("nameofcookie", cookievalue, {path: "/", expires: 30});
Lo que sé :
- La demostración del complemento funciona con Chrome.
- Si pongo mi código en un servidor web (la dirección comienza con http: //), funciona con Chrome.
Entonces, la cookie solo falla para Google Chrome en archivos locales .
Posibles causas :
- Google Chrome no acepta cookies de páginas web en el disco duro (rutas como file: /// C: /websites/foo.html)
- Algo en la implementación del complemento hace que Chrome rechace dichas cookies.
¿Alguien puede confirmar esto e identificar la causa raíz?
jquery
cookies
google-chrome
Nathan Long
fuente
fuente
Respuestas:
Chrome no admite cookies para archivos locales (o, como mencionó Peter Lyons, localhost *) a menos que lo inicie con la marca --enable-file-cookies. Puede leer un debate al respecto en http://code.google.com/p/chromium/issues/detail?id=535 .
* Chrome hace las galletas de apoyo si se utiliza la dirección IP local (127.0.0.1) directamente. así que en el caso de localhost, esa podría ser una solución más fácil.
fuente
Para aplicaciones locales, use localStorage en Chrome en su lugar: http://people.w3.org/mike/localstorage.html
fuente
Tuve algún problema y lo resolví con esta terrible solución. usando el complemento de tienda y cookie juntos.
<script src="js/jquery.cookies.2.2.0.js" type="text/javascript"></script> <script src="js/jquery.Storage.js" type="text/javascript"></script> var is_chrome = navigator.userAgent.toLowerCase().indexOf('chrome') > -1; //get cookies var helpFlag=(is_chrome)?$.Storage.get("helpFlag"):$.cookies.get("helpFlag"); //set cookies if(is_chrome)$.Storage.set("helpFlag", "1");else $.cookies.set("helpFlag", "1");
Sé que esta no es la solución perfecta, pero funciona para mí.
fuente
Esto hizo el trabajo por mí:
Haga clic derecho en su icono de Chrome y seleccione Propiedades, pestaña Acceso directo y agregue --enable-file-cookies en la última ruta de destino.
fuente
Tuve el mismo problema, intente usar la dirección IP de localhost en su lugar. Por ejemplo, "http://127.0.0.1/yoursite/"
fuente
consulte Cookies y Google Analytics .
$.cookie("nameofcookie", cookievalue, {path: "/", expires: 30});
cambia esta línea a
$.cookie("nameofcookie", cookievalue, {*Path:* "/", expires: 30});
este proyecto funciona bien.
fuente
Otra posible causa es que
path: "/"
, dado que no está utilizando una URL web normal,/
probablemente no signifique mucho; intente sin establecer la ruta en absoluto.fuente
Si usa chrominum, este es el comando para habilitar las cookies locales
Es lo mismo para Chrome
¡Espero que esto te ayude!
fuente
Como solución alternativa, puede usar Tampermonkey con acceso a archivos locales ( ¿Cómo incluir páginas htm locales en un script de Tampermonkey? ) De esa manera, usará el almacenamiento de Tampermonkey y podrá configurar y obtener sus datos mediante las funciones GM_getValue (datos) y GM_setValue (datos). Lo usé para mi página HTML local, que usé como alternativa personalizable al Explorador de Windows
Pero en realidad, localStorage de la respuesta de Yuri funciona perfectamente.
fuente