Delete cookie by name?

cookies, javascript

Solution

You should define the path on which the cookie exists to ensure that you are deleting the correct cookie.

function set_cookie(name, value) {
  document.cookie = name +'='+ value +'; Path=/;';
}
function delete_cookie(name) {
  document.cookie = name +'=; Path=/; Expires=Thu, 01 Jan 1970 00:00:01 GMT;';
}

If you don't specify the path, the browser will set a cookie relative to the page you are currently on, so if you delete the cookie while on a different page, the other cookie continues its existence.

Edit based on @Evan Morrison's comment. Be aware that in some cases to identify the correct cookie, the `Domain` parameter is required. Usually it's defined as `Domain=.yourdomain.example`. Placing a dot in front of your domain name means that this cookie may exist on any sub-domain (`www` also counts as sub-domain).

Also, as mentioned in @RobertT's answer, `HttpOnly` cookies cannot be deleted with JavaScript on the client side.

Problem

How can I delete a specific cookie with the name `roundcube_sessauth`? Shouldn't the following: ``` function del_cookie(name) { document.cookie = 'roundcube_sessauth' + '=; expires=Thu, 01-Jan-70 00:00:01 GMT;'; } ``` And then: ``` <a href="javascript:del_cookie(name);">KILL</a> ``` Kill the `roundcube_sessauth` cookie?

Original source

Related problems