删除cookie删不掉的问题

本文详细记录了解决在不同浏览器(如火狐、IE、360极速)中删除Cookie的兼容性问题的过程,分享了一个实用的删除Cookie的函数,强调了设置正确的cookie路径的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

文章转自:

https://blog.youkuaiyun.com/swimming_in_it_/article/details/80290547

https://blog.youkuaiyun.com/huanshiwushuang/article/details/70172536

http://php.js.cn/blog/delete-cookie/

不知道能不能解决你的问题,但是我来说说我的经历,昨天在用Yii做项目是删除js 的cookie是遇到了问题在一个页面生成的cookie时只能


在同一个页面删掉,在另一个页面死活删不掉,凭着哥执着的性格,哥折腾到12点,结果还是没解决,坑爹啊!!后来我看到下面这篇文章


后http://www.cnblogs.com/gossip/archive/2011/12/06/2278282.html,才知道原来是cookie路径的问题,然后通过火狐自带的查看


cookie功能<选项-----隐私------删除个人cookie------在搜索框中输入cookie的名字,在下方你可以看到路径>查看到无法删掉的那个


cookie文件的路径,然后在删除cookie时将cookie的路径加了进去果然删除掉了。
但是,正当我沾沾自喜时,准备换个浏览器试下,坑姐夫呢!这是!!!,360极速浏览器怎么还是删不掉cookie,蛋疼啊!最后通过360极


速浏览器自带的查看cookie功能<选项-----高级设置------网页内容-----内容设置------cookie---所有cookie和网页数据------输入你


的域名(我的是localhost),你就可以看到你的cookie了>发现他设置的cookie路径和火狐不同,最后改了改删除cookie的函数,终于两个浏


览器都可以删除了,噩梦终于结束了。附上我删除cookie的函数最终版!虽然不太严谨     function deleteMyCookie2(name) {  
var date = new Date();
     date.setTime(date.getTime()-10000); //删除一个cookie,就是将其过期时间设定为一个过去的时间
     document.cookie = name + "= ' ' " + "; expires=" + date.toUTCString()+";path="+"火狐上显示的cookie路径";
     document.cookie = name + "= ' ' " + "; expires=" + date.toUTCString()+";path="+"ie和360上显示的cookie路径";
 
 }
这个函数之所以可以成功解决ie、360极速、火狐的兼容,是因为蓝色字体的每一句对不同的浏览器来说都是正确的,且由于路径不同的


cookie尽管名字相同但是不会相互覆盖,所以刚好解决了兼容问题。
最后我总结最好的办法就是设置cookie是就把cookie的路径设置上,然后删除的时候用同样的路径就不存在兼容的问题了。

 

删除cookie把domain和path都加上

这是我删除的重置百度的cookie

var name = "PSTM"; var date=new Date();
date.setTime(date.getTime()-10000);   document.cookie = name + "=11;domain=.baidu.com;path=/";

### 如何在浏览器或代码中删除指定名称的本地Cookie #### 删除指定名称的Cookie的方法 要在客户端通过JavaScript删除特定名称的Cookie,可以通过设置该Cookie的有效期为过去的日期来实现。以下是具体方法: ```javascript document.cookie = "要删除cookie的name=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/"; ``` 上述代码的作用是将目标Cookie的值清空并将其过期时间设定为过去的时间点[^2]。 对于服务器端Java环境中的Cookie删除操作,则可以按照以下方式执行: - 创建一个具有相同名称的新Cookie实例,并赋予其空白值; - 将此新Cookie的最大存活时间设为零秒; - 使用`response.addCookie()`函数向HTTP响应头添加这个特殊配置过的Cookie对象。 示例如下所示: ```java // 声明新的Cookie对象并将它的名字赋为空字符串 Cookie cookie = new Cookie("要删除cookie的name", ""); // 设置最大生存时间为0表示立即销毁它 cookie.setMaxAge(0); // 添加到HttpServletResponse里去覆盖原来的那个同名Cookies response.addCookie(cookie); ``` 以上过程实际上并不是真正意义上的物理删除,而是逻辑上的替代处理机制[^1]。 #### 需要注意的地方 当涉及到不同域之间的数据交互时,请记住由于安全原因所施加的一些限制条件——即所谓的“Same-Origin Policy”。这意味着来自两个完全不同源(协议、主机地址或者端口号任何一个不匹配都算作不同的源)之间不能互相访问对方保存下来的任何类型的持久化资料,包括但不限于cookies等敏感信息[^2]。 另外值得注意的是,在实际应用过程中还需要考虑路径(Path)属性的影响因素;只有当Path完全一致的情况下才能成功移除对应的项。因此建议在清除之前先确认好待项目的确切参数细节再做相应调整。 #### 总结 无论是前端脚本还是后端程序都可以方便快捷地完成针对某单一标识符关联记录条目清理工作只需遵循标准API接口定义即可达成预期效果。 相关问题
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值