我正在开发一个删除会话cookie的功能
以下是源代码:
<script language="javascript">
window.onload = function ()
{
/* $.cookie('!lithiumSSO:tomtom.stage', null);
$.cookie('LiSESSIONID', null);*/
delete_cookie('LiSESSIONID');
delete_cookie('!lithiumSSO:tomtom.stage');
};
function delete_cookie ( cookie_name )
{
var cookie_date = new Date ( ); // current date & time
cookie_date.setTime ( cookie_date.getTime() - 1 );
document.cookie = cookie_name += "=; expires=" + cookie_date.toGMTString();
alert('name:' +cookie_name);
jQuery.cookie('LiSESSIONID', null); //Try to using jQuery
}
我可以设置一个弹出窗口显示名称:LiSESSIONID =; expires = Wed,02 Feb 2011 10:56:52 GMT。这比落后一小时。但是,当我使用firecookies时,我看到这个cookie仍然存在:
LiSESSIONID
7A10E3453B01DDFF934AC7AF71EAFEC3
forums.lithiumstage.tomtom.com
43 B
/
会话
的HttpOnly
有谁知道为什么我不能杀死cookie? jQuery函数状态表示undefined甚至我加载函数
谢谢
答案 0 :(得分:0)
原因是因为设置了HttpOnly标志。这意味着只有服务器端代码才能修改此cookie。
答案 1 :(得分:0)
必须在服务器端删除cookie。我没有关于您使用的语言的信息,但如果它是 node + express,它会像:
res.clearCookie('LiSESSIONID', {
httpOnly: true,
sameSite: true,
domain: 'YOUR DOMAIN HERE',
});
HttpOnly 使用起来非常有趣,因为它是安全的,并且可以防止它被浏览器更改 https://developer.mozilla.org/en-US/docs/Web/HTTP/Cookies#restrict_access_to_cookies
如果您想在浏览器中删除它,请在创建 cookie 时删除 httpOnly(我不建议这样做)。