新手对于JS保存、读取cookie的疑问。

思路:A页面请求接口成功后获取token→保存token到cookie→A页面跳转B页面。
问题:本来想在A页面写一个保存cookie的代码,网上找了代码自己写了下面这一段:document.cookie="token="+jsonobj.Token; PS (jsonobj.Token是返回的json处理后的token值,“token=”是key吧?)。 然后我用下列代码提取并显示:var username1=document.cookie.split("=")[1];alert(username1);结果失败了,提示Undefined。 我的cookie应该是“token=46843548489”这样之类的吧,为什么用“=”分割后取[1]显示Undefined?。新人第一次处理,真心不懂。

cookie的写入和读取的方式是有所不同的,写入的时候可以用 document.cookie="abc=123"; 这样的形式,但是读取的时候,document.cookie是包含网页的全部cookie(如果网页是从别的页面跳转来的,还包括跳转前网页的cookie)以及后台服务器的session参数(比如登录状态什么的,当然是加密后的)等等,形式类似于下面这样:
ASPSESSIONIDASSQTACT=JAFJEDMAABBPKOGKCGEKEHID; admin=OK; wzid=13; codym=222; cuym0=0; cuym206=35; csdym=207; idym=206; cd=ym; abc=123
也就是说所有的cookie键值对是以"; "(分号加一个空格)分隔的,要想获得“abc”的值,就要先用"; "分割为数组,再遍历数组,把每个元素再用"="分割,然后再对比等号左边元素是否为"abc"来获得右边的值"123"。
但是,正常情况下document.cookie.split("=")[1]也不应该是undefined啊,我估计你这个jsonobj.Token是个空值,所以才会这样。你可以在赋值前先输出jsonobj.Token看看是什么值。
温馨提示:答案为网友推荐,仅供参考
相似回答