javascript - HTML cookie 不能完全 JS 创建
问题描述
function writeCartToCookie(){
var stringRepresentation = "";
for (i = 0; i < cart.length; i++){
stringRepresentation += "serial" + i + "=" + cart[i][0] + "; ";
stringRepresentation += "price" + i + "=" + cart[i][1] + "; ";
stringRepresentation += "name" + i + "=" + cart[i][2] + "; ";
stringRepresentation += "qtty" + i + "=" + cart[i][3] + "; ";
}
stringRepresentation += stringRepresentation + "max-age=" + 60*60*24*7;
/* ALERT BEFORE WRITE */ alert(stringRepresentation);
/* WRITE */ document.cookie = stringRepresentation;
/* ALERT AFTER WRITE */ alert(document.cookie);
}
结果:
第一条警报消息:
序列号0=12312312;价格0=₽810,000;name0=КОЛЕНВАЛ-F; 数量0=4;序列号1=2345465;价格1=₽820;name1=ШТУЦЕР ТИТАН; 数量1=85;序列号2=956;价格2=₽590,000;name2=ФОРСУНКА МЕГА; 数量2=1;序列号 3=2356996;价格3=₽100,000;name3=РАСПРЕДЕЛИТЕЛЬНЫЙ ВАЛ; 数量3=4;序列号0=12312312;价格0=₽810,000;name0=КОЛЕНВАЛ-F; 数量0=4;序列号1=2345465;价格1=₽820;name1=ШТУЦЕР ТИТАН; 数量1=85;序列号2=956;价格2=₽590,000;name2=ФОРСУНКА МЕГА; 数量2=1;序列号 3=2356996;价格3=₽100,000;name3=РАСПРЕДЕЛИТЕЛЬНЫЙ ВАЛ; 数量3=4;最大年龄=604800
第二条警报消息:
序列号0=12312312
所以“serial0”是唯一被写入的值为什么?
解决方案
任何一个中只能设置一个 cookie
document.cookie = "something=something";
任务。这是一个古老而奇怪的 API。因此,您必须在循环中设置每个 cookie。(另外,请确保i
在let
或var
某处声明。)
每个 cookie 都需要它自己的一组标志,例如max-age
.
推荐阅读
- python - 如何对我的 AWS Lambda 函数进行故障排除?
- c - 如何访问在 C 程序中的结构中定义的枚举
- python - Flask Python NameError:未定义名称'Flaskform'
- php - Laravel 从集合中删除模型条目
- reactjs - 在使用 jest 进行测试时,有什么方法可以触发 video 元素上的 onEnded 属性?
- java - 通过java以root身份登录到shell
- c++ - gmock:如何将模拟类的指针传递给另一个类?
- python - {Python, Selenium} 如何检测我已经在使用的浏览器窗口并在所述浏览器窗口中创建一个新选项卡?
- cmake - Google Protobuf - Protoc 使用导入编译 Proto 文件
- java - SpringBootApplication 不是从 JUnit Suite 类开始