jQuery在重置cookie之前未删除cookie

jQuery not deleting cookie before resetting it

本文关键字:cookie 删除 jQuery      更新时间:2024-06-13

我正在尝试使用Javascript为网站更新一些cookie。它应该查看现有cookie是否为某个值。如果是,请删除cookie并替换它。

相反,它添加了新的cookie,而没有删除原来的cookie。

这是我的代码

$(document).ready(function(){
if(getCookie('ref') == 'na') {
    $.cookie('ref', null, { path: '/', expires: -5 });
    $.cookie('ref', Base64.encode(document.referrer), { expires: 365 });
}
});

这是我正在使用的cookie库:https://github.com/carhartl/jquery-cookie

我做错了什么?

若要删除cookie,必须将其设置为与要删除cookie的路径和域完全相同的路径和域名。在两个$.cookie()调用中都指定path,如果在以前的任何代码中都指定了domain,则必须在jQuery代码中将域指定为完全匹配。

$(document).ready(function() {
  if(getCookie('ref') == 'na') {
      $.cookie('ref', null, { path: '/', expires: -5 });
      $.cookie('ref', Base64.encode(document.referrer), {path: '/', expires: 365 });
  }
});

然而,如果你只是想覆盖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 });
  }
 });