쿠키를이름으로삭제하시겠습니까?
이름이 있는 특정 쿠키를 삭제하려면 어떻게 해야 합니까?roundcube_sessauth
?
다음 사항이 있어야 하지 않습니까?
function del_cookie(name) {
document.cookie = 'roundcube_sessauth' +
'=; expires=Thu, 01-Jan-70 00:00:01 GMT;';
}
그 다음은:
<a href="javascript:del_cookie(name);">KILL</a>
죽여라!roundcube_sessauth
쿠키?
쿠키가 존재하는 경로를 정의하여 올바른 쿠키를 삭제하는지 확인해야 합니다.
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;';
}
경로를 지정하지 않으면 브라우저가 현재 페이지에 있는 쿠키를 상대적으로 설정하므로, 다른 페이지에 있는 동안 쿠키를 삭제하면 다른 쿠키가 계속 존재합니다.
@Evan Morrison 님의 코멘트를 바탕으로 편집합니다.어떤 경우에는 정확한 쿠키를 식별하기 위해Domain
매개 변수가 필요합니다.일반적으로 다음과 같이 정의됩니다.Domain=.yourdomain.example
. 도메인 이름 앞에 점을 두는 것은 이 쿠키가 모든 하위 도메인에 존재할 수 있음을 의미합니다.www
또한 하위 도메인으로 계산됩니다.
또한 @RobertT의 답변에서도 언급된 바와 같이,HttpOnly
클라이언트 측의 자바스크립트에서는 쿠키를 삭제할 수 없습니다.
쿠키 세트를 삭제하기 위해서는expires
과거의 어떤 것에 대한 연대.이렇게 하는 기능이 있습니다.
var delete_cookie = function(name) {
document.cookie = name + '=;expires=Thu, 01 Jan 1970 00:00:01 GMT;';
};
그런 다음 이름이 붙은 쿠키를 삭제합니다.roundcube_sessauth
그냥 하세요.
delete_cookie('roundcube_sessauth');
//exMins=0을 통과하면 생성 즉시 삭제됩니다.
function setCookie(cname, cvalue, exMins) {
var d = new Date();
d.setTime(d.getTime() + (exMins*60*1000));
var expires = "expires="+d.toUTCString();
document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/";
}
setCookie('cookieNameToDelete','',0) // this will delete the cookie.
그것이 5월 12일에 나온 라운드큐브 버전의 상황이었는지는 잘 모르겠지만, 현재 버전의 경우에는 당신이 삭제할 수 없다는 것이 답입니다.roundcube_sessauth
cookie from JavaScript, 로 표시됨HttpOnly
. 이것은 JS 클라이언트 측 코드에서 액세스할 수 없으며 서버 측 스크립트나 직접적인 사용자 작업(통합 디버거 또는 일부 플러그인과 같은 브라우저 메커니즘을 통해)으로만 제거할 수 있음을 의미합니다.
이 솔루션을 사용해 볼 수 있습니다.
var d = new Date();
d.setTime(d.getTime());
var expires = "expires="+d.toUTCString();
document.cookie = 'COOKIE_NAME' + "=" + "" + ";domain=domain.example;path=/;" + expires;
function deleteCookieByName(name) {
let newCookie = document.cookie.replace(new RegExp(`${name}=[^ ]*( )?`), '');
document.__defineGetter__("cookie", function() {return newCookie} );
}
제 경우에는 환경에 따라 블로우 코드를 사용했습니다.
document.cookie = name +`=; Path=/; Expires=Thu, 01 Jan 1970 00:00:01 GMT;Domain=.${document.domain.split('.').splice(1).join('.')}`;
쿠키는 이 쿠키 설명서를 참조할 수 있습니다.
js에서 도메인으로 쿠키를 설정하는 경우:
function setCrossSubdomainCookie(cookieName, cookieValue, minutes) {
const assign = `${name}=${escape(value)};`
const d = new Date()
d.setTime(d.getTime() + minutes * 60 * 1000)
const expires = `expires=${d.toUTCString()};`
const path = "path=/;"
const domain = "domain=.domainName.example;"
document.cookie = assign + expires + path + domain
}
js에 도메인이 있는 쿠키를 삭제하는 경우:
export async function deleteCookie(name) {
document.cookie = `${name}=; path=/; domain=.edyst.com; expires=${new Date(
0
).toUTCString()}`
}
참고: 만료 시간이 없는 쿠키는 저장할 수 없지만 도메인은 선택 사항으로 제외할 수 있으며 쿠키를 오래 저장하고 싶거나 쿠키의 만료를 원하지 않는 경우 쿠키를 설정할 때 사용합니다.
const expires = "expires=Fri, 31 Dec 9999 23:59:59 GMT"
언급URL : https://stackoverflow.com/questions/10593013/delete-cookie-by-name
'programing' 카테고리의 다른 글
N/2번 이상 반복되는 배열의 요소를 찾는 방법은? (0) | 2023.09.11 |
---|---|
Win32에서 GCC로 어셈블리 기호에 선행 밑줄을 추가하시겠습니까? (0) | 2023.09.11 |
HyperLogLog 알고리즘은 어떻게 작동합니까? (0) | 2023.09.11 |
마리아드비 컨테이너 하나에만 연동된 Gitlab과 Wordpress 컨테이너 사용이 가능한가요? (0) | 2023.09.11 |
null 값이 가능한 필드에 고유 인덱스를 만드는 방법(Oracle 11g)? (0) | 2023.09.11 |