Cha*_*lie 134 javascript cookies
如何删除名称中的特定cookie roundcube_sessauth
?
不应该如下:
function del_cookie(name) {
document.cookie = 'roundcube_sessauth' +
'=; expires=Thu, 01-Jan-70 00:00:01 GMT;';
}
Run Code Online (Sandbox Code Playgroud)
然后:
<a href="javascript:del_cookie(name);">KILL</a>
Run Code Online (Sandbox Code Playgroud)
杀掉roundcube_sessauth
饼干?
小智 227
您应该定义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;';
}
Run Code Online (Sandbox Code Playgroud)
如果您没有指定路径,浏览器会根据您当前所在的页面设置cookie,因此如果您在不同的页面上删除cookie,则其他cookie将继续存在.
根据@Evan Morrison的评论编辑.
请注意,在某些情况下,要识别正确的cookie,Domain
也需要参数.
通常Domain=.yourdomain.com
在域名前面用作Period表示此cookie可能存在于任何子域(www
也称为子域).
另外,正如@ RobertT的回答中提到的,HttpOnly
在客户端使用JavaScript无法删除cookie.
小智 177
为了删除cookie,将expires
日期设置为过去的某些内容.这样做的功能就是.
var delete_cookie = function(name) {
document.cookie = name + '=;expires=Thu, 01 Jan 1970 00:00:01 GMT;';
};
Run Code Online (Sandbox Code Playgroud)
然后删除名为roundcube_sessauth
just do 的cookie .
delete_cookie('roundcube_sessauth');
Run Code Online (Sandbox Code Playgroud)
//如果传递了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.
Run Code Online (Sandbox Code Playgroud)
我不确定这是否是从12月5日开始的Roundcube版本的情况,但对于当前的情况,答案是你无法roundcube_sessauth
从JavaScript中删除cookie,因为它被标记为HttpOnly
.这意味着它无法从JS客户端代码访问,只能通过服务器端脚本或直接用户操作(通过某些浏览器机制,如集成调试器或某些插件)删除.
归档时间: |
|
查看次数: |
272090 次 |
最近记录: |