4

我正在尝试使用 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

我究竟做错了什么?

4

1 回答 1

2

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

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

但是,如果您只是打算覆盖它,则没有真正需要删除它:

$(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 });
  }
 });
于 2012-07-30T20:07:06.313 回答