JavaScript로 모든 쿠키를 삭제하려면 어떻게해야합니까?
이 질문에 이미 답변이 있습니다.
- JavaScript 18 답변으로 모든 쿠키 지우기
JavaScript로 쿠키를 저장하는 코드를 작성했습니다. 이제 할당 한 값에 관계없이 쿠키를 지워야합니다.
Javascript에 의해 생성 된 모든 쿠키를 삭제하는 스크립트 모듈이 있습니까?
내 샘플 코드 :
document.cookie = 'ppkcookie2=another test; expires=Fri, 3 Aug 2001 20:47:11 UTC; path=/'
function createCookie(name,value,days) {
if (days) {
var date = new Date();
date.setTime(date.getTime()+(days*24*60*60*1000));
var expires = "; expires="+date.toGMTString();
}
else var expires = "";
document.cookie = name+"="+value+expires+"; path=/";
}
function readCookie(name) {
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for(var i=0;i < ca.length;i++) {
var c = ca[i];
while (c.charAt(0)==' ') c = c.substring(1,c.length);
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
}
return null;
}
function eraseCookie(name) {
createCookie(name,"",-1);
}
다른 방법으로 모든 쿠키를 지울 수 있습니까?
웹 서버에서 코드를 테스트 할 때 문제가 있습니까?
겉보기에는 괜찮아 보입니다. eraseCookie()
에서 읽은 각 쿠키를 호출하면 document.cookie
모든 쿠키가 사라집니다.
이 시도:
var cookies = document.cookie.split(";");
for (var i = 0; i < cookies.length; i++)
eraseCookie(cookies[i].split("=")[0]);
이 모든 것에는 다음과 같은주의 사항이 있습니다.
- JavaScript 는 HttpOnly 플래그가 설정된 쿠키를 제거 할 수 없습니다 .
브라우저 쿠키를 삭제하는 100 % 해결책은 없습니다.
문제는 쿠키가 키 "이름"뿐만 아니라 "도메인"및 "경로"로 고유하게 식별된다는 것입니다.
쿠키의 "도메인"및 "경로"를 모르면 쿠키를 안정적으로 삭제할 수 없습니다. 이 정보는 JavaScript의 document.cookie
. HTTP 쿠키 헤더를 통해서도 사용할 수 없습니다!
그러나 쿠키의 이름, 경로 및 도메인을 알고있는 경우 과거 만료 날짜가있는 빈 쿠키를 설정하여 삭제할 수 있습니다. 예를 들면 다음과 같습니다.
function clearCookie(name, domain, path){
var domain = domain || document.domain;
var path = path || "/";
document.cookie = name + "=; expires=" + +new Date + "; domain=" + domain + "; path=" + path;
};
짧막 한 농담
빨리 붙이고 싶은 경우 ...
document.cookie.split(";").forEach(function(c) { document.cookie = c.replace(/^ +/, "").replace(/=.*/, "=;expires=" + new Date().toUTCString() + ";path=/"); });
그리고 북마크릿에 대한 코드 :
javascript:(function(){document.cookie.split(";").forEach(function(c) { document.cookie = c.replace(/^ +/, "").replace(/=.*/, "=;expires=" + new Date().toUTCString() + ";path=/"); }); })();
이것은 우리가 응용 프로그램에서 사용하는 기능이며 잘 작동합니다.
쿠키 삭제 : 인수 방법 없음
function clearListCookies()
{
var cookies = document.cookie.split(";");
for (var i = 0; i < cookies.length; i++)
{
var spcook = cookies[i].split("=");
deleteCookie(spcook[0]);
}
function deleteCookie(cookiename)
{
var d = new Date();
d.setDate(d.getDate() - 1);
var expires = ";expires="+d;
var name=cookiename;
//alert(name);
var value="";
document.cookie = name + "=" + value + expires + "; path=/acc/html";
}
window.location = ""; // TO REFRESH THE PAGE
}
Edit: This will delete the cookie by setting it to yesterday's date.
Why do you use new Date instead of a static UTC string?
function clearListCookies(){
var cookies = document.cookie.split(";");
for (var i = 0; i < cookies.length; i++){
var spcook = cookies[i].split("=");
document.cookie = spcook[0] + "=;expires=Thu, 21 Sep 1979 00:00:01 UTC;";
}
}
참고URL : https://stackoverflow.com/questions/595228/how-can-i-delete-all-cookies-with-javascript
'Nice programing' 카테고리의 다른 글
Fedora 29 업그레이드 후 Slack이 분할 오류를 반환하는 이유는 무엇입니까? (0) | 2020.10.29 |
---|---|
그래프의 Y 축에 대한 매력적인 선형 스케일 선택 (0) | 2020.10.29 |
JavaScript에서 String.Format 사용? (0) | 2020.10.28 |
ASP.NET MVC 전역 변수 (0) | 2020.10.28 |
산란 용 matplotlib 컬러 바 (0) | 2020.10.28 |