今天遇到一个页面间用cookie传值的问题,因为把数据写入cookie时没有对path赋值,另一个页面在取值时也没有对path赋值,导致cookie一直删不掉,后来在控制台的Application栏中发现存放数据的cookie和要删除的cookie路径不同,最终在添加和删除cookie时都添加了相同的path路径,问题解决!
// 添加Cookie
function addCookie(name, value, options) {
if (arguments.length > 1 && name != null) {
if (options == null) {
options = {};
}
if (value == null) {
options.expires = -1;
}
if (typeof options.expires == "number") {
var time = options.expires;
var expires = options.expires = new Date();
expires.setTime(expires.getTime() + time * 1000);
}
document.cookie = encodeURIComponent(String(name)) + "=" + encodeURIComponent(String(value)) + (options.expires ? "; expires=" + options.expires.toUTCString() : "") + (options.path ? "; path=" + options.path : "") + (options.domain ? "; domain=" + options.domain : ""), (options.secure ? "; secure" : "");
}
}
// 获取Cookie
function getCookie(name) {
if (name != null) {
var value = new RegExp("(?:^|; )" + encodeURIComponent(String(name)) + "=([^;]*)").exec(document.cookie);
return value ? decodeURIComponent(value[1]) : null;
}
}
// 移除Cookie
function removeCookie(name, options) {
addCookie(name, null, options);
}
//添加
var name = "Content";
removeCookie(name ,{expires:60,path:'/'});
//移除cookie
var nm = "awardId";
removeCookie(nm,{expires:60,path:'/'});