js中cookie的设置和删除方法大致如下:
function setCookie(cookieName, cookieValue, expiredays) {
var date=new Date();
date.setDate(date.getDate()+expiredays);
document.cookie=cookieName+'='+cookieValue+'; expries='+date.toGMTString()+'path=/';
}
function getCookie(cookieName) {
var cookies=document.cookie.split(';');
for (var i = 0; i < cookies.length; i++) {
var userData=cookies[i].split('=');
if (userData[0]==cookieName) {
return userData[1];
};
};
return '';
}
但是我们在本地测试是会出现以下问题:
1. 当我们给设置的cookie设置过期时,仍然可以读取到设置过期的cookie
2. 本地测试的页面设置的cookie,当浏览器关闭重启后,不能够读取到cookie,cookie没有被保存到本地
Cookie 是一小段文本信息,伴随着用户请求和页面在 Web 服务器和浏览器之间传递。用户每次访问站点时,Web 应用程序都可以读取 Cookie 包含的信息。 Cookie 的基本工作原理如果用户再次访问站点上的页面,当该用户输入 URLwww.*.com时,浏览器就会在本地硬盘上查找与该 URL 相关联的 Cookie。如果该 Cookie 存在,浏览器就将它与页面请求一起发送到您的站点。
根据cookie的工作原理,测试的时候都是用localhost去做的,但cookie的域必须是域名,因此造成无法正确读取cookie。
3. 在设置cookie时,不要忘记设置path=/,这个是设定cookie的路径的,如果不设置的话,不在同一路径的页面是找不到其他页面设置的cookie的,一般设置成path=/