84 votes

Pourquoi Chrome ignorer local jQuery cookies?

Je suis à l'aide de jQuery plugin Cookie (téléchargement et de démonstration et de code source avec commentaires) de définir et de lire un cookie. Je suis le développement de la page sur ma machine locale.

Le code suivant va réussir à installer des cookies dans FireFox 3, internet explorer 7, Safari (PC). Mais si le navigateur est Google Chrome, la page est un fichier local, il ne fonctionne pas.

$.cookie("nameofcookie", cookievalue, {path: "/", expires: 30});

Ce que je sais:

  • Le plugin démo fonctionne avec google Chrome.
  • Si j'ai mis mon code sur un serveur web (adresse commençant par http://), il fonctionne avec google Chrome.

Si le cookie n'échoue que pour Google Chrome sur des fichiers locaux.

Causes possibles:

  • Google Chrome ne pas accepter les cookies à partir de pages web sur le disque dur (les chemins comme file:///C:/websites/foo.html)
  • Quelque chose dans le plugin implentation causes Chrome refuser ces cookies

Quelqu'un peut confirmer cela et d'identifier la cause du problème?

93voto

Matthew Crumley Points 47284

Chrome ne prend pas en charge les cookies pour les fichiers locaux (ou, comme Peter Lyons mentionné, localhost*) sauf si vous commencez avec l'option --enable-fichier de cookies de drapeau. Vous pouvez lire une discussion à ce sujet à http://code.google.com/p/chromium/issues/detail?id=535.

*Chrome ne prend en charge les cookies si vous utilisez l'adresse IP locale (127.0.0.1) directement. ainsi, dans le localhost cas, cela pourrait être une solution plus facile.

7voto

Yuri Points 41

Pour les applications locales d'utilisation localStorage dans google Chrome à la place: http://people.w3.org/mike/localstorage.html

5voto

Serdar Güner Points 81

j'ai eu quelques problème et résolu ce terrible solution. à l'aide de stocker et de cookie plugin ensemble.

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

Je sais que ce n'est pas la solution parfaite mais fonctionne pour moi

3voto

Tiji Points 31

J'ai eu le même problème, essayez d'utiliser l'adresse IP de localhost à la place. Pour l'e.g "http://127.0.0.1/yoursite/"

2voto

Greg Points 132247

Une autre cause possible est l' path: "/", puisque vous n'êtes pas en utilisant une normale URL web, / n'a probablement pas beaucoup de sens - essayer sans définir le chemin d'accès à tous.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X