使用 JavaScript 清除所有 Cookie
本文将帮助你使用 JavaScript 清除所有 cookie。
Cookies
允许客户端和服务器通过 HTTP 通信和传输信息。即使在使用无状态协议 HTTP 时,它也允许客户端保留状态信息。
- 用户浏览器每次后续访问域时,都会在 HTTP 请求标头中发送有关 cookie 的信息。
- 登录信息、同意等参数等信息改善和个性化用户体验。
使用 JavaScript 删除当前域的所有 Cookie
当前文档中的 cookie 属性用于更改使用 HTML DOM cookie
属性购买的 cookie 的属性。document.cookie
返回与当前文档关联的所有以分号分隔的 cookie 的字符串。
语法:
document.cookie = "key=value";
下面的代码显示了如何使用 JavaScript 删除 cookie。该代码在在线编辑器上运行,以证明该代码只能删除你网站生成的 cookie。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>
</title>
</head>
<body>
<main>
<script type="text/javascript">
document.cookie = "username=shiv";
document.cookie = "CONSENT=YES+IN.en+20170903-09-0";
function displayCookies() {
var displayCookies = document.getElementById("display");
displayCookies.innerHTML = document.cookie;
}
function deleteAllCookies() {
var cookies = document.cookie.split(";");
for (var i = 0; i < cookies.length; i++) {
var cookie = cookies[i];
var eqPos = cookie.indexOf("=");
var name = eqPos > -1 ? cookie.substr(0, eqPos) : cookie;
document.cookie = name + "=;expires=Thu, 01 Jan 1970 00:00:00 GMT";
}
}
</script>
<button onclick="displayCookies()">Display Cookies</button>
<button onclick="deleteAllCookies()">Delete Cookies</button>
<p id="display"></p>
</main>
</body>
</html>
上面的代码有两个限制。
- 设置了
HttpOnly
标志的 Cookie 不会被删除,因为HttpOnly
标志会禁用 JavaScript 对 cookie 的访问。 - 设置为路径值的 Cookie 不会被删除。 (虽然这些 cookie 出现在
Deleted
下,但如果不为安装路径指定相同的值,则无法删除它们。)
输出:
当你点击显示 Cookie
时,它将显示 cookie。
你还可以在检查器中查看 cookie。
点击 Delete Cookies
后,它会删除它,你必须再次点击显示 cookies,看看它是否被删除。
你还可以在检查器中查看它是否被删除。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布,任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站。本站所有源码与软件均为原作者提供,仅供学习和研究使用。如您对本站的相关版权有任何异议,或者认为侵犯了您的合法权益,请及时通知我们处理。