我创建cookie的功能正确吗?如何删除程序开头的cookie ?有简单的编码吗?

function createCookie(name,value,days)
function setCookie(c_name,value,1) {
  document.cookie = c_name + "=" +escape(value);
}

setCookie('cookie_name',mac);

function eraseCookie(c_name) {
  createCookie(cookie_name,"",-1);
}

当前回答

我在我的网站上使用这个在Chrome和Firefox上工作。

function delete_cookie(name) { document.cookie = name +'=; Path=/;  Domain=' + location.host +  '; Expires=Thu, 01 Jan 1970 00:00:01 GMT; SameSite=None; Secure' }

其他回答

如果手动创建cookie,其他一些解决方案可能无法工作。

下面是一个快速删除cookie的方法:

document.cookie = 'COOKIE_NAME=; Max-Age=0; path=/; domain=' + location.host;

如果这不起作用,试着替换位置。带有位置的主机。上面代码片段中的主机名。

我曾经从后端生成cookie并重定向到前端。我得到它工作的唯一方法是设置过期日期在过去的背和重定向回到前端

以下是Mozilla支持unicode的删除cookie函数的实现:

function removeItem(sKey, sPath, sDomain) {
    document.cookie = encodeURIComponent(sKey) + 
                  "=; expires=Thu, 01 Jan 1970 00:00:00 GMT" + 
                  (sDomain ? "; domain=" + sDomain : "") + 
                  (sPath ? "; path=" + sPath : "");
}

removeItem("cookieName");

如果你使用AngularJs,试试$cookies。删除(下面使用类似的方法):

$cookies.remove('cookieName');

这样能行吗?

function eraseCookie(name) {
    document.cookie = name + '=; Max-Age=0'
}

我知道Max-Age在IE中创建cookie时会导致cookie成为会话cookie。不知道它是如何工作时删除cookies。

我在删除一个通过JavaScript制作的cookie时遇到了麻烦,在我添加了主机后它就工作了(滚动下面的代码到右边可以看到location.host)。清除域上的cookie后,尝试以下操作查看结果:

if (document.cookie.length==0)
{
 document.cookie = 'name=example; expires='+new Date((new Date()).valueOf()+1000*60*60*24*15)+'; path=/; domain='+location.host;

 if (document.cookie.length==0) {alert('Cookies disabled');}
 else
 {
  document.cookie = 'name=example; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/; domain='+location.host;

  if (document.cookie.length==0) {alert('Created AND deleted cookie successfully.');}
  else {alert('document.cookies.length = '+document.cookies.length);}
 }
}