web-dev-qa-db-fra.com

Le code JavaScript pour le cookie ne fonctionne pas dans Chrome

Le code suivant fonctionne bien en FF:

var date = new Date();
date.setTime(date.getTime() + (1 * 24 * 60 * 60 * 1000));
expires = "; expires=" + date.toGMTString();
document.cookie = "c_odi" + "=" + $('#orderdetailid').val() + expires + "; path=/";

Mais pas dans Chrome. Lorsque j'utilise Chrome et que je code document.cookie dans la console pour afficher les cookies, le cookie c_odi n'existe pas. Mais quand je fais la même chose en FF, ça l'est. Comment pouvons-nous utiliser les cookies dans Chrome? Les cookies qui ont été ajoutés par PHP sont corrects, mais pas celui-ci en JavaScript. Je dois ajouter ce cookie via JavaScript à ce stade.

13
user961627

Ce problème peut se produire si vous ouvrez votre code en tant que file:///C:/.../xxx.html au lieu de http:// localhost/xxx.html. Chrome n'enregistre pas les cookies (car il n'y a ni domaine ni communication http) dans le cas file://.

Peu de liens d'intérêt:

43
Roman Hocke

On dirait que ça marche pour moi:

enter image description here

http://jsfiddle.net/rQEnF/3/

Au moins, le cookie apparaît dans les outils de développement, comme vous pouvez le voir. Cependant, j'ai remplacé le sélecteur jQuery $('#orderdetailid').val() par une valeur constante, comme vous pouvez le constater. Y at-il quelque chose qui cloche avec cette valeur ou l'élément contenant la valeur peut-être?

0
alexander.biskop

Essayez de remplacer cette ligne:

document.cookie = "c_odi" + "=" + $('#orderdetailid').val() + expires + "; path=/";

avec celui-ci:

document.cookie = "c_odi" + "=" + escape($('#orderdetailid').val()) + expires + "; path=/";

Vous devez utiliser unescape lorsque vous essayez de lire la valeur, mais vous garderez le contrôle quand le temps viendra :)

0
sbgoran

Assurez-vous que l'URL de la barre d'adresse correspond au domaine. Dans Chrome, si vous définissez domaine = www.site.com, puis testez votre page dans le navigateur, il vous manque le site www. ça ne marchera pas.

0
Dean

Chrome ne stocke pas les cookies des pages chargées du système de fichiers local. Par exemple, si vous accédez à un fichier HTML dans Chrome Browser à partir du système de fichiers local (ex: fichier: /// C: /Users/deepak.r/Desktop/test.html), les cookies ne sont pas supportés.

0
Deepak Ranganathan