Pourquoi Chrome ignore-t-il les cookies jQuery locaux?

J’utilise le plugin jQuery Cookie ( téléchargement et démonstration et code source avec commentaires ) pour définir et lire un cookie. Je développe la page sur ma machine locale .

Le code suivant définira avec succès un cookie dans FireFox 3, IE 7 et Safari (PC). Mais si le navigateur est Google Chrome ET que la page est un fichier local , cela ne fonctionne pas.

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

Ce que je sais

  • La démo du plugin fonctionne avec Chrome.
  • Si je mets mon code sur un serveur Web (adresse commençant par http: //), cela fonctionne avec Chrome.

Ainsi, le cookie échoue uniquement pour Google Chrome sur les fichiers locaux .

Causes possibles :

  • Google Chrome n’accepte pas les cookies des pages Web sur le disque dur (chemins d’access tels que file: /// C: /websites/foo.html)
  • Quelque chose dans l’implémentation du plugin provoque le rejet de ces cookies par Chrome

Quelqu’un peut-il confirmer cela et identifier la cause première?

Chrome ne prend pas en charge les cookies pour les fichiers locaux (ou, comme Peter Lyons l’a mentionné, localhost *) à moins que vous ne le lanciez avec l’indicateur –enable-file-cookies. Vous pouvez en lire une discussion à l’ adresse http://code.google.com/p/chromium/issues/detail?id=535 .

* Chrome prend en charge les cookies si vous utilisez l’adresse IP locale (127.0.0.1) directement. Donc, dans le cas de localhost, cela pourrait être une solution plus simple.

Pour les applications locales, utilisez plutôt localStorage dans Chrome: http://people.w3.org/mike/localstorage.html

J’ai eu un problème et résolu cette solution terrible. en utilisant le plug-in store et cookie ensemble.

   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 une solution parfaite mais ça marche pour moi

J’ai eu le même problème, veuillez essayer d’utiliser l’adresse IP de localhost à la place. Par exemple “http://127.0.0.1/yoursite/”

Cela a fait le travail pour moi:

entrer la description de l'image ici

Cliquez avec le bouton droit de la souris sur votre icône Chrome et sélectionnez Propriétés, onglet Raccourci et ajoutez –enable-file-cookies au dernier chemin cible.

s’il vous plaît vérifier les cookies et Google Analytics .

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

changer cette ligne à

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

ce projet fonctionne bien.

Une autre cause possible est le path: "/" , puisque vous n’utilisez pas une URL Web normale, / ne signifie probablement pas grand chose – essayez de ne pas définir le chemin du tout.

Si vous utilisez chrominum c’est la commande pour activer les cookies locaux

navigateur chrome –enable-file-cookies

C’est la même chose pour le chrome

J’espère que cela vous aidera!