【发布时间】:2016-11-20 23:36:08
【问题描述】:
我有下一个 javascript 代码的 sn-p:
wdata['account'] = {"value": $(input).val(), "title": "Номер карты получения"};
var r = {"ipayway": ipw_selected,
"wpayway": wpw_selected,
"amount_type": amount_type,
"amount": amount,
"email": email,
"idata": idata,
"wdata": wdata,
"udata": udata
}
console.log(JSON.stringify(r));
document.cookie = "r=" + JSON.stringify(r) + ";";
console.log(document.cookie);
在 chrome 和 firefox 中调试结果:
{"ipayway":"3","wpayway":"2","amount_type":"invoice","amount":"10","email":"refer@faster.com","idata":{"phone":{"value":"79111111111","title":"phone"}},"wdata":{"account":{"value":"4444444444444448","title":"Номер карты получения"}},"udata":{}}
_ga=GA1.2.1726207989.1464355649; _ym_uid=1464355650833173718; _ym_isad=2; r%3Dfalse%3B; r={"ipayway":"3","wpayway":"2","amount_type":"invoice","amount":"10","email":"refer@faster.com","idata":{"phone":{"value":"79111111111","title":"phone"}},"wdata":{"account":{"value":"4444444444444448","title":"Номер карты получения"}},"udata":{}}; _gat=1; _ym_visorc_37606275=w
在野生动物园中:
{"ipayway":"3","wpayway":"2","amount_type":"invoice","amount":"10","email":"refer@faster.com","idata":{"phone":{"value":"79111111111","title":"phone"}},"wdata":{"account":{"value":"4444444444444448","title":"Номер карты получения"}},"udata":{}}
r={"ipayway":"3","wpayway":"2","amount_type":"invoice","amount":"10","email":"refer@faster.com","idata":{"phone":{"value":"79111111111","title":"phone"}},"wdata":{"account":{"value":"4444444444444448","title":"A1468837743323372246t%3A1468837754%3A; ga=GA1.2.1861993315.1468837742; gat=1; ym_isad=2; ym_uid=1468837743323372246; _ym_visorc_37606275=w
我不知道会发生什么。为什么而不是 "title":"Номер карты получения" 就像在 chrome 或 firefox 中一样,我在 safari "title":"A1468837743323372246t%3A1468837754%3A 中得到了这个垃圾。如果您在调试结果中比较大括号,safari 也确实会切断最后一个闭合的大括号。
【问题讨论】:
-
如果您尝试将 cookie 设置为具有与 JSON 中出错的相同“Номер карты получения”文本的简单字符串,会发生什么情况?或者,如果您存储带有使用标准英文字母的标题的 JSON?
-
document.cookie = 'r="Номер карты получения"';"_ym_isad=2; _ym_uid=1468841469115532439; r=\"z" -
@nnnnnn 如果您看到调试结果 JSON.stringify 会产生正确的结果。但是当我尝试将带有非 ascii 符号的字符串写入 cookie 时,只保存垃圾
标签: javascript json cookies safari cross-browser