问题解决:谷歌浏览器上,使用原生JS无法删除cookie的解决方案

问题场景

在测试项目退出功能的时候,发现退出之后,微服务框架所生成的cookie依旧存在。导致进入首页的时候,没有异常跳转,反而正常进入。为了简单处理,使用了原生JS进行cookie的删除。但是执行之后,cookie未正常被删除,cookie依旧存在。本篇博客主要是讲述该情况发生的原因及解决方案。

问题环境

软件 版本
JDK 8

问题原因

打开谷歌浏览器的devtools页面,查看cookie页面,可以发现里面有一个属性为HttpOnly,这个属性主要是让网页代码中的js无法获得相关信息,而服务器端可以正常获取。而要被删除的cookie是被设置了HTTPONLY属性,所以无法被JS进行控制和清除。如下图:
在这里插入图片描述

解决方案

既然服务器端可以正常操作,则在服务器端开发清除cookie的接口,然后调用接口进行删除。删除代码如下:

public static void removeCookie(HttpServletResponse response, String name) {
    
    
	Cookie uid = new Cookie(name, null);
	uid.setPath("/");
	uid.setMaxAge(0);
	uid.setHttpOnly(true);
	response.addCookie(uid);
}

结果

调用接口之后,顺利将cookie进行删除。

总结

坑无处不在,需要多钻研思考!!!

随缘求赞

如果我的文章对大家产生了帮忙,可以在文章底部点个赞或者收藏;
如果有好的讨论,可以留言;
如果想继续查看我以后的文章,可以点击关注
可以扫描以下二维码,关注我的公众号:枫夜之求索阁,查看我最新的分享!
在这里插入图片描述
拜拜

猜你喜欢

转载自blog.csdn.net/u013084266/article/details/112362929