Chrome n'autorise pas les cookies avec expirations moins de 4 heures

Je ne peux pas créer de cookies avec une durée de vie courte dans Google Chrome. Ils ne sont pas configurés ou sont immédiatement supprimés (ne peut pas le dire, bien que le résultat soit le même de toute façon). Cela ne se produit que si l'expiration est de 4 heures ou moins à l'avenir. Un code identique fonctionne bien si le délai d'expiration est supérieur à 4 heures et le problème ne se produit pas dans Firefox ou Safari. Voici un exemple:

Ne marche pas:

exp = new Date(); exp.setMinutes(exp.getMinutes() + 240); document.cookie="name=value;expires=" + exp + ";path=/"; 

Travaux:

 exp = new Date(); exp.setMinutes(exp.getMinutes() + 241); document.cookie="name=value;expires=" + exp + ";path=/"; 

Quelqu'un at-il des suggestions pour savoir comment résoudre ce problème?

En effet, j'ai vérifié la Source Chromium ici http://code.google.com/p/chromium/source/search?q=document.cookie+expire&origq=document.cookie+expire&btnG=Search+Trunk en référence aux cookies et trouvé dans Tous leurs expires = déclarations qu'ils appellent soit à la GMTString () ou à .toUTCString () sur un objet de date, de sorte qu'il pourrait s'agir d'une fonction particulière de formatage de date qui se vide lorsqu'elle l'convertit implacablement en un format plutôt que d'en configurer explicitement.

au lieu de cela:

 document.cookie="name=value;expires=" + exp + ";path=/"; 

essaye ça:

 document.cookie="name=value;expires=" + exp.toUTCString() + ";path=/"; 

Semble fonctionner pour moi en utilisant jQuery.cookie:

 Command: exp = new Date() Output: Thu Aug 09 2012 11:39:21 GMT-0700 (Pacific Daylight Time) Command: exp.setMinutes(exp.getMinutes() + 240) Output: 1344551961739 Command: $.cookie('testCookie', 'test', {path: '/', expires: exp}); Output: "testCookie=test; expires=Thu, 09 Aug 2012 22:39:21 GMT; path=/" 

Cela a été fait dans la console de Chrome sur Windows.

Note: 22:39 en GMT est 15:39 en GMT -0700, donc c'est une expiration de 4 heures.

Edit: J'ai testé votre code directement et il ne semble pas accepter que le cookie soit défini pour expirer en moins de 4 heures. Cela n'utilise pas jQuery:

 exp = new Date(); exp.setMinutes(exp.getMinutes() + 240); document.cookie="testCookie2=test;expires=" + exp.toUTCString() + ";path=/";