Javascript jQuery在重置cookie之前不删除它
我正在尝试使用Javascript更新网站的一些cookie。它应该查看现有cookie是否具有特定的值。如果是,请删除cookie并将其替换 相反,它添加新的cookie而不删除原始cookie 这是我的密码Javascript jQuery在重置cookie之前不删除它,javascript,jquery,cookies,Javascript,Jquery,Cookies,我正在尝试使用Javascript更新网站的一些cookie。它应该查看现有cookie是否具有特定的值。如果是,请删除cookie并将其替换 相反,它添加新的cookie而不删除原始cookie 这是我的密码 $(document).ready(function(){ if(getCookie('ref') == 'na') { $.cookie('ref', null, { path: '/', expires: -5 }); $.cookie('ref', Base64.e
$(document).ready(function(){
if(getCookie('ref') == 'na') {
$.cookie('ref', null, { path: '/', expires: -5 });
$.cookie('ref', Base64.encode(document.referrer), { expires: 365 });
}
});
这是我正在使用的cookie库:
我做错了什么?要删除cookie,必须将其设置为与要从中删除cookie的路径和域完全相同的路径和域。在两个
$.cookie()
调用中指定路径
,如果在以前的任何代码中指定了域
,则必须在jQuery代码中将该域指定为完全匹配的域
$(document).ready(function() {
if(getCookie('ref') == 'na') {
$.cookie('ref', null, { path: '/', expires: -5 });
$.cookie('ref', Base64.encode(document.referrer), {path: '/', expires: 365 });
}
});
但是,如果您只是想覆盖cookie,则不需要删除cookie:
$(document).ready(function() {
if(getCookie('ref') == 'na') {
// Just write the new cookie over the old one...
$.cookie('ref', Base64.encode(document.referrer), {path: '/', expires: 365 });
}
});
我认为路径就是问题所在。当我在PHP中设置cookie时,它会在域名的开头添加一个句点。我想这就是为什么JS没有覆盖它。@liz是的,当你试图覆盖cookie时,像路径这样的域必须是完全匹配的。