如何删除名称为的特定Cookie 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
饼干?
您应该定义cookie所在的路径,以确保删除正确的cookie。
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;';
}
如果未指定路径,浏览器将相对于您当前所在的页面设置一个cookie,因此,如果您在其他页面上删除该cookie时,另一个cookie继续存在。
根据@Evan Morrison的评论进行编辑。
请注意,在某些情况下,要标识正确的cookie,Domain
则需要该参数。
通常将其定义为Domain=.yourdomain.com
。在您的域名前
放置一个点意味着该cookie可以存在于任何子域中(www
也算作子域)。
另外,如@RobertT的回答中所述,HttpOnly
不能在客户端使用JavaScript删除cookie。
为了删除Cookie,请将expires
日期设置为过去的某个日期。一个可以做到这一点的功能。
var delete_cookie = function(name) {
document.cookie = name + '=;expires=Thu, 01 Jan 1970 00:00:01 GMT;';
};
然后删除一个名为roundcube_sessauth
do的cookie 。
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.
我不确定这是否适用于12年5月的Roundcube版本,但是对于当前版本,答案是您无法roundcube_sessauth
从JavaScript删除cookie,因为它被标记为HttpOnly
。这意味着无法从JS客户端代码访问它,并且只能通过服务器端脚本或通过直接用户操作(通过某些浏览器机制,例如集成调试器或某些插件)将其删除。
您可以尝试此解决方案
var d = new Date();
d.setTime(d.getTime());
var expires = "expires="+d.toUTCString();
document.cookie = 'COOKIE_NAME' + "=" + "" + ";domain=domain.com;path=/;" + expires;
就我而言,我在不同的环境下使用了打击代码。
document.cookie = name +`=; Path=/; Expires=Thu, 01 Jan 1970 00:00:01 GMT;Domain=.${document.domain.split('.').splice(1).join('.')}`;
本文地址:http://javascript.askforanswer.com/anmingchengshanchucookie.html
文章标签:cookies , javascript
版权声明:本文为原创文章,版权归 javascript 所有,欢迎分享本文,转载请保留出处!
文章标签:cookies , javascript
版权声明:本文为原创文章,版权归 javascript 所有,欢迎分享本文,转载请保留出处!
评论已关闭!