使用 JavaScript 清除所有 Cookie
Shiv Yadav
2023年10月12日
本文將幫助你使用 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,看看它是否被刪除。
你還可以在檢查器中檢視它是否被刪除。
作者: Shiv Yadav
Shiv is a self-driven and passionate Machine learning Learner who is innovative in application design, development, testing, and deployment and provides program requirements into sustainable advanced technical solutions through JavaScript, Python, and other programs for continuous improvement of AI technologies.
LinkedIn