GNT sans publicité, site mobile, fonctionnalitées exclusives...

Chrome, Safari et Cookies...

Le
unbewusst.sein
je teste un script concernat les cookies.
il marche nickel avec Chrome et Firefox, pas avec Safari.
il s'agit d'enregistrer un objet :
var datas={'cat': 2, 'limit': 18, 'offset': 0, 'rowid': 244};

dans un cookie.

Malheureusement Safari me dit (console web developer) qu'il n'y a pas de
cookie associé à ma page, donc je ne peux voir son contenu de cette
manière

Ce qui se passe :

quand je lit le cookie, Safari me retourne par :
console.log("readCookieObject() : object = "+object);

# -> readCookieObject() : object = { 'cat': 2

dons, à la suite de ce console.log j'ai un :
object = eval(" ( " + object + " ) ");

qui me donne, bien évidemment une erreur de syntaxe :
SyntaxError: Expected token '}'

Alors que ça marche très bien sur Chrome, Nightly et Opera

Je suspecte un problème avec une espace ou la virgule.

Le code est accessible ici :
<http://82.226.217.239/js_lib/tests/cookieObject_TEST.html>

Bon, le but de la manip est d'enregistrer l'état d'une fenêtre pour la
ré-ouvrir dans le même état

Peut-être n'est-ce pas le bon moyen en utilisant un cookie ?






--
« Si tous ceux qui n'ont rien n'en demandaient pas plus,
il serait bien facile de contenter tout le monde. »
(Coluche)
Lire les 8 réponses

Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
unbewusst.sein
Le #23885491
Une Bévue
Je suspecte un problème avec une espace ou la virgule.



Bon, j'ai progressé, dans la partie du script lisant le cookie, j'ai :
var ca = document.cookie.split(';');

si je fais un print des valeurs de ca par :
console.log("readCookie() : ca["+i+"] = "+ca[i]);

je n'en ai qu'une qui vaut :
readCookie() : ca[0] = org.ytho.landp.datas={ 'cat': 2

donc le problème est à l'écriture ou la lecture ???

si je fais :
console.log("readCookie() : document.cookie = "+document.cookie);

ça me retourne :
readCookie() : document.cookie = org.ytho.landp.datas={ 'cat': 2

donc ça ne vient pas de la fonction readCookie()

donc je regarde ce qu'enregistre createCookie() par :
console.log("createCookie() : document.cookie "+name+"="+value+expires+"; path=/");

étant entendu que c'est ce que je mets dans le cookie :
document.cookie = name+"="+value+expires+"; path=/";

et là, ça me donne une valeur qui me semble correcte :
createCookie() : document.cookie = org.ytho.landp.datas={ 'cat': 2,
'limit': 18, 'offset': 0, 'rowid': 244, 'sum': 264 }; expires=Fri, 19
Oct 2012 07:52:52 GMT; path=/

Seule hypothèse : Safari n'aime pas les "," de mon objet ???

--
« Si tous ceux qui n'ont rien n'en demandaient pas plus,
il serait bien facile de contenter tout le monde. »
(Coluche)
unbewusst.sein
Le #23885541
Une Bévue
Seule hypothèse : Safari n'aime pas les "," de mon objet ???



Apparemment, d'a^rès une recherche Google, "ça a eu été" un bugg connu"
Matt Neubourh renvoie à une page de faq sur safari, qui n'existe plus.
même aves l'application "Cocoa Cookie" je ne vois pas mon cookie,
peut-être est-ce du à mon adresse :
http://82.226.217.239/js_lib/tests/cookieObject_TEST.html
_______^^^^^^^^^^^^^^^___________________________________

????
qui est mon localhost ???


--
« Si tous ceux qui n'ont rien n'en demandaient pas plus,
il serait bien facile de contenter tout le monde. »
(Coluche)
unbewusst.sein
Le #23885581
Une Bévue
même aves l'application "Cocoa Cookie" je ne vois pas mon cookie,



Si je farfouille dans ~/Library/Cookies, je vois des fichiers :
com.apple.appstore.plist
com.apple.appstore.plist - corrupt
Cookies.binarycookies
Cookies.plist
Cookies.plist_tmp_217_0.dat

et ni dans Cookies.plist ni dans Cookies.plist_tmp_217_0.dat
il n'y a de trace de mon cookie, repéré par son nom
"org.ytho.landp.datas"

je ne sais pas lire les "Cookies.binarycookies"...

--
« Si tous ceux qui n'ont rien n'en demandaient pas plus,
il serait bien facile de contenter tout le monde. »
(Coluche)
Bol
Le #23886141
var datas={'cat': 2, 'limit': 18, 'offset': 0, 'rowid': 244};
dans un cookie.



encode les cookies comme les urls
var=escape(data)

A+
Bol
Pierre Goiffon
Le #23889501
Le 20/10/2011 12:28, Bol a écrit :
encode les cookies comme les urls
var=escape(data)



ATTENTION : encode() fonctionne en ISO Latin-1 ! Il vaut mieux utiliser
encodeURI() ou encodeURIComponent() !

https://developer.mozilla.org/en/Ja.../encodeURI
Publicité
Suivre les réponses
Poster une réponse
Anonyme