使用javascript删除cookie

时间:2013-03-07 09:45:52

标签: jquery asp.net-mvc

我有一个函数用于编写cookie:

function Search_Click() {
  $.cookie("urlAction", null);
  $.cookie("searchKey", null);
  var searchkey = $('#txtsearch').val();
  var key = decodeURIComponent(searchkey);
  sampleData = "Q=" + key;
  if ($.cookie("urlInStock") != null) {
    action = "NewSearchIn";
  } else {
    action = "NewSearch";
  }
  urlAction = "Pro/" + action + "/";
  $.cookie("searchKey", sampleData);
  $.cookie("urlActionVal", urlAction);
  window.location = "/Pro?tab=2";
}

完成Search_Click()后,页面将重定向到另一个页面,其中包含我刚注册的Cookie。

然后,如果用户点击链接,我想删除该cookie。

这就是我的尝试:

 function deleteSearchCookies() {
    $.cookie("searchKey", null);
    $.cookie("urlActionVal", null);
 }

但是当我在FireBug中出错时,会话仍然存在。

3 个答案:

答案 0 :(得分:3)

function deleteCookie(name) {
    document.cookie = name+'="";-1; path=/';
}

var login = document.getElementById("loginlink");
login.onclick = function() {
  deleteCookie("name");
};

答案 1 :(得分:2)

要删除:

function deleteSearchCookies() {
    $.removeCookie("searchKey");
    $.removeCookie("urlActionVal");
}

了解更多信息visit question

如果您不想使用插件,请使用(根据需要进行备用修改)

//Creates client side cookie
function Cookie(name, value, minutes) {
   var expires = "";
   if (minutes) {
      var date = new Date();
      date.setTime(date.getTime() + (minutes * 60 * 1000));
      expires = "; expires=" + date.toGMTString();
   }

   document.cookie = name + "=" + value + expires;
}

function deleteSearchCookies() {
    Cookie("searchKey",null,-1);
    Cookie("urlActionVal",null,-1);
}

答案 2 :(得分:1)

像这样删除:

$.cookie(cookieName, null, { expires: -1, path: '/' }); 

很抱歉,您需要使用相同的路径保存它:

var date = new Date();
date.setTime(date.getTime() + sameValueForTime);
$.cookie(cookieName, value, { expires: date, path: '/' });

有时候firebug错误并显示cookie在删除时会存在,但你只能在cookie区域看到它不使用它。