设置Cookie不工作

Javascript - Setting Cookie Not Working

本文关键字:工作 Cookie 设置      更新时间:2023-09-26

我有一个设置cookie的函数:

function setCookie(cname, cvalue, exdays){
    var d = new Date();
    d.setTime(d.getTime() + (1000*60*60*24*exdays));
    var expires = "expires="+d.toGMTString();
    document.cookie = cname + "=" + cvalue + "; " + expires;
    alert(cvalue);
}

我想保存Json数据存储在一个名为cvalue的变量在一个cookie。我的问题是,我可以设置cookie时,cvalue等于:

18&&6&&6&&150&&1&&1406983971763&&1406984554440&&false&&542&&true&&false&&{"killEnemies":[{"type":"normal","amount":1,"regard":2,"done":true},{"type":"normal","amount":5,"regard":10,"done":true},{"type":"normal","amount":10,"regard":20,"done":false},{"type":"normal","amount":50,"regard":100,"done":false},{"type":"normal","amount":100,"regard":120,"done":false},{"type":"normal","amount":200,"regard":250,"done":false},{"type":"normal","amount":500,"regard":300,"done":false},{"type":"normal","amount":1000,"regard":400,"done":false},{"type":"normal","amount":2000,"regard":1000,"done":false},{"type":"normal","amount":3000,"regard":1500,"done":false},{"type":"normal","amount":5000,"regard":2000,"done":false},{"type":"normal","amount":10000,"regard":5000,"done":false},{"type":"normal","amount":15000,"regard":5000,"done":false},{"type":"normal","amount":20000,"regard":5000,"done":false},{"type":"normal","amount":30000,"regard":10000,"done":false},{"type":"normal","amount":40000,"regard":10000,"done":false},{"type":"normal","amount":50000,"regard":10000,"done":false}],"upgrades":[{"type":"player","level":1,"regard":15,"name":"jacto","done":false},{"type":"player","level":2,"regard":25,"name":"jacto","done":false},{"type":"gunRecharge","level":1,"regard":15,"name":"pistola","done":false},{"type":"gunRecharge","level":2,"regard":25,"name":"pistola","done":false},{"type":"player","level":3,"regard":40,"name":"jacto","done":false},{"type":"player","level":4,"regard":55,"name":"jacto","done":false},{"type":"gunRecharge","level":3,"regard":35,"name":"pistola","done":false},{"type":"gunRecharge","level":7,"regard":300,"name":"pistola","done":false},{"type":"player","level":7,"regard":450,"name":"jacto","done":false},{"type":"gunRecharge","level":10,"regard":600,"name":"pistola","done":false},{"type":"player","level":10,"regard":750,"name":"jacto","done":false},{"type":"gunRecharge","level":15,"regard":1000,"name":"pistola","done":false}]}&&{"width":32,"height":32,"x":868,"y":403,"speed":5,"level":0,"active":true}&&{"active":true,"xVelocity":0,"yVelocity":-30,"interval":500,"level":0,"numShoots":1,"numShootsLevel":0,"width":10,"height":10,"sizeLevel":0}&&<p><img src="images/time.png" width="15px" title="Tempo" alt="Tempo"> 13:52:51 - O jogo iniciou.</p><p><img src="images/time.png" width="15px" title="Tempo" alt="Tempo"> 13:52:53 - O jogo foi gravado.</p><p><img src="images/time.png" width="15px" title="Tempo" alt="Tempo"> 13:53:4 - O jogo foi carregado</p><p><img src="images/time.png" width="15px" title="Tempo" alt="Tempo"> 13:53:5 - O jogo foi colocado em modo de pausa.</p><p><img src="images/time.png" width="15px" title="Tempo" alt="Tempo"> 13:53:6 - O modo de pausa foi desativado.</p><p><img src="images/time.png" width="15px" title="Tempo" alt="Tempo"> 13:53:6 - O jogo foi colocado em modo de pausa.</p><p><img src="images/time.png" width="15px" title="Tempo" alt="Tempo"> 13:53:7 - O modo de pausa foi desativado.</p><p><img src="images/time.png" width="15px" title="Tempo" alt="Tempo"> 13:53:17 - O jogo foi colocado em modo de pausa.</p><p><img src="images/time.png" width="15px" title="Tempo" alt="Tempo"> 14:1:15 - O modo de pausa foi desativado.</p><p><img src="images/time.png" width="15px" title="Tempo" alt="Tempo"> 14:1:15 - Atingiste o nível 1</p><p><img src="images/time.png" width="15px" title="Tempo" alt="Tempo"> 14:1:19 - Concluiste uma missão, mataste um total de 1 enimigos e recebeste <img src="images/coin.png" width="15px" title="Dinheiro" alt="Dinheiro">2</p><p><img src="images/time.png" width="15px" title="Tempo" alt="Tempo"> 14:1:30 - Concluiste uma missão, mataste um total de 5 enimigos e recebeste <img src="images/coin.png" width="15px" title="Dinheiro" alt="Dinheiro">10</p><p><img src="images/time.png" width="15px" title="Tempo" alt="Tempo"> 14:1:32 - O jogo foi gravado.</p><p><img src="images/time.png" width="15px" title="Tempo" alt="Tempo"> 14:2:29 - O jogo foi carregado</p><p><img src="images/time.png" width="15px" title="Tempo" alt="Tempo"> 14:2:35 - O jogo foi gravado.</p>&&1406984555052&&

但是当cvalue等于:

23&&6&&6&&150&&2&&1406983971763&&1406984702953&&false&&686&&true&&false&&{"killEnemies":[{"type":"normal","amount":1,"regard":2,"done":true},{"type":"normal","amount":5,"regard":10,"done":true},{"type":"normal","amount":10,"regard":20,"done":false},{"type":"normal","amount":50,"regard":100,"done":false},{"type":"normal","amount":100,"regard":120,"done":false},{"type":"normal","amount":200,"regard":250,"done":false},{"type":"normal","amount":500,"regard":300,"done":false},{"type":"normal","amount":1000,"regard":400,"done":false},{"type":"normal","amount":2000,"regard":1000,"done":false},{"type":"normal","amount":3000,"regard":1500,"done":false},{"type":"normal","amount":5000,"regard":2000,"done":false},{"type":"normal","amount":10000,"regard":5000,"done":false},{"type":"normal","amount":15000,"regard":5000,"done":false},{"type":"normal","amount":20000,"regard":5000,"done":false},{"type":"normal","amount":30000,"regard":10000,"done":false},{"type":"normal","amount":40000,"regard":10000,"done":false},{"type":"normal","amount":50000,"regard":10000,"done":false}],"upgrades":[{"type":"player","level":1,"regard":15,"name":"jacto","done":false},{"type":"player","level":2,"regard":25,"name":"jacto","done":false},{"type":"gunRecharge","level":1,"regard":15,"name":"pistola","done":true},{"type":"gunRecharge","level":2,"regard":25,"name":"pistola","done":false},{"type":"player","level":3,"regard":40,"name":"jacto","done":false},{"type":"player","level":4,"regard":55,"name":"jacto","done":false},{"type":"gunRecharge","level":3,"regard":35,"name":"pistola","done":false},{"type":"gunRecharge","level":7,"regard":300,"name":"pistola","done":false},{"type":"player","level":7,"regard":450,"name":"jacto","done":false},{"type":"gunRecharge","level":10,"regard":600,"name":"pistola","done":false},{"type":"player","level":10,"regard":750,"name":"jacto","done":false},{"type":"gunRecharge","level":15,"regard":1000,"name":"pistola","done":false}]}&&{"width":32,"height":32,"x":559,"y":398,"speed":5,"level":0,"active":true}&&{"active":true,"xVelocity":0,"yVelocity":-30,"interval":450,"level":1,"numShoots":1,"numShootsLevel":0,"width":10,"height":10,"sizeLevel":0}&&<p><img src="images/time.png" width="15px" title="Tempo" alt="Tempo"> 13:52:51 - O jogo iniciou.</p><p><img src="images/time.png" width="15px" title="Tempo" alt="Tempo"> 13:52:53 - O jogo foi gravado.</p><p><img src="images/time.png" width="15px" title="Tempo" alt="Tempo"> 13:53:4 - O jogo foi carregado</p><p><img src="images/time.png" width="15px" title="Tempo" alt="Tempo"> 13:53:5 - O jogo foi colocado em modo de pausa.</p><p><img src="images/time.png" width="15px" title="Tempo" alt="Tempo"> 13:53:6 - O modo de pausa foi desativado.</p><p><img src="images/time.png" width="15px" title="Tempo" alt="Tempo"> 13:53:6 - O jogo foi colocado em modo de pausa.</p><p><img src="images/time.png" width="15px" title="Tempo" alt="Tempo"> 13:53:7 - O modo de pausa foi desativado.</p><p><img src="images/time.png" width="15px" title="Tempo" alt="Tempo"> 13:53:17 - O jogo foi colocado em modo de pausa.</p><p><img src="images/time.png" width="15px" title="Tempo" alt="Tempo"> 14:1:15 - O modo de pausa foi desativado.</p><p><img src="images/time.png" width="15px" title="Tempo" alt="Tempo"> 14:1:15 - Atingiste o nível 1</p><p><img src="images/time.png" width="15px" title="Tempo" alt="Tempo"> 14:1:19 - Concluiste uma missão, mataste um total de 1 enimigos e recebeste <img src="images/coin.png" width="15px" title="Dinheiro" alt="Dinheiro">2</p><p><img src="images/time.png" width="15px" title="Tempo" alt="Tempo"> 14:1:30 - Concluiste uma missão, mataste um total de 5 enimigos e recebeste <img src="images/coin.png" width="15px" title="Dinheiro" alt="Dinheiro">10</p><p><img src="images/time.png" width="15px" title="Tempo" alt="Tempo"> 14:1:32 - O jogo foi gravado.</p><p><img src="images/time.png" width="15px" title="Tempo" alt="Tempo"> 14:4:53 - O jogo foi carregado</p><p><img src="images/time.png" width="15px" title="Tempo" alt="Tempo"> 14:4:55 - O jogo foi colocado em modo de pausa.</p><p><img src="images/time.png" width="15px" title="Tempo" alt="Tempo"> 14:4:56 - O modo de pausa foi desativado.</p><p><img src="images/time.png" width="15px" title="Tempo" alt="Tempo"> 14:4:57 - Melhorou a pistola para nível 1</p><p><img src="images/time.png" width="15px" title="Tempo" alt="Tempo"> 14:4:57 - Concluiste uma missão, evoluiste a pistola para nível 1 e recebeste <img src="images/coin.png" width="15px" title="Dinheiro" alt="Dinheiro">15</p><p><img src="images/time.png" width="15px" title="Tempo" alt="Tempo"> 14:5:5 - Atingiste o nível 2</p><p><img src="images/time.png" width="15px" title="Tempo" alt="Tempo"> 14:5:5 - O jogo foi gravado.</p>&&1406984705723&&

cookie不被存储。有人知道为什么吗?

谢谢你,我很感激你的帮助

您可能会遇到问题,因为cookie字符串的总长度/s大于实际的~4093字节(每个域),这通常被认为是跨浏览器上限

作为替代方案,您可能希望查看localStorage对象,因为它具有比cookie更高的容量
(5-10 MB取决于浏览器) ,并且更容易使用- 即。

localStorage.setItem(name, value);
localStorage.getItem(name);
localStorage.removeItem(name);