无法清除cookie中的属性值之对解决问题的思考
关于如何快速解决一个自己知识以外的问题的思考
做好任何事情都是讲究方法的,这是我健身之后的一个领悟,用正确的方式做事,自己的付出才能有价值。
首先分析问题:
比如我想清除cookie里面的token,我调用了unsetCookie('token'),看下unsetCookie这个方法是怎么写的,为什么调用了没有清除我要清除的token的值(解决问题要有自己的思路),我期望它是什么样的(预期是什么样的),预期是希望调用unsetCookie去重新设置一个为空值的同名的token(要知道自己写的代码都在干啥,逻辑要搞明白),也就是创建一个为空的同名的token去覆盖之前的。
然后就是根据问题提出自己的假设:
调用的方法没有达到预期效果,那猜测是因为没有覆盖,没有覆盖的原因可能是因为不是同一个cookie。
验证假设直到验证成功或推翻(思维不要乱,一定要有逻辑的去推和验证):
如果不是同一个cookie那么调用setCookie应该会新增一条cookie记录,然而现实情况是浏览器中没有看到新增一条,是否和设置的空值有关?浏览器中测试一下,调用setCookie设置一个有值的token,看是否能创建,还是没有看到浏览器中有新的cookie,设置的cookie删除的情况最有可能和设置的过期时间有关,过期时间在当前时间之前,检查一下 设置的过期时间,读出来貌似确实有问题,延长下过期时间,然后再调用setCookie,看到一条新的cookie。
验证成功
确实是新增了cookie,很快就发现浏览器中两条cookie的domain不一致,调用的unsetCookie的cookie的domain多了一个".",锁定问题,domain有问题,看下对应的代码,在直接调用setCookie时没有传domain,在调用unsetCookie时,里面的在调用setCookie时传了domain参数。都不传domain,发现可以覆盖了。
搞清楚原因:
修改cookie,path/domain必须一致,否则会新增cookie,然后再查文档会发现当设置cookie时,如果不指定domain默认cookie的domain会是当前域名(比如:当前域为baidu.com,domain为baidu.com),如果指定了domain,cookie的domain指的是包含当前域名的子域名(domain为:.baidu.com)
总结:
解决问题要有思路,要有自己的一套解决问题的方法。
解决问题的套路大概总结为如下:
遇到问题,首先要搞清楚问题是什么,你的代码怎么写的出了什么问题;然后你本来希望是什么样的;为什么和你预期不一样,不一样的可能原因,提出假设;验证假设推成功或推翻。
多一些耐心多一些思考,相信很多没有遇到过的问题都可以靠自己去找到解决方案。
写的代码会忘记,但学会的解决问题的能力会是一直伴随自己的财富。
无法清除cookie中的属性值之对解决问题的思考的更多相关文章
- <s:property="a" value=""/>取的<s:debug></s:debug>中的value stack中的属性值
<s:property="a" value=""/>取的<s:debug></s:debug>中的value stack中 ...
- 将source类中的属性值赋给target类中对应的属性
/** * 对象的属性值拷贝 * <p> * 将source对象中的属性值赋值到target对象中的属性,属性名一样,类型一样 * <p> * example: * <p ...
- Spring中使用@Value读取porperties文件中的属性值方法总结及注意事项
本文为博主原创,转载请注明出处. 此前曾总结过使用工具类读取properties文件中的属性值,有兴趣的可以看一下. 如何快速获取properties中的配置属性值:https://www.cnblo ...
- 【Python】获取翻页之后的各页面中的属性值。
如何获取翻页之后的页面中的html标签中的属性值? # coding=utf-8 from selenium import webdriver if __name__=="__main__& ...
- ajax取到数据后如何拿到data.data中的属性值
今天遇到的ajax取到数据后如何拿到data.data中的属性值的问题 比如拿到了数据 我要取出data中的name 题外话:当然取名最好别取什么奇怪的xiaobi
- Implement Property Value Validation in the Application Model 在应用程序模型中实现属性值验证
In this lesson, you will learn how to check whether or not a property value satisfies a particular r ...
- js获取cookie中存储的值
最近看了试卷题目发现自己会的十分的匮乏, 第一题就把自己难住了,知道有这个东西,但是实际上没有操作过. ========================================= cookie ...
- 在函数中处理html点击事件在标签中增加属性值来解决问题。
- spring boot 读取配置文件(application.yml)中的属性值
在spring boot中,简单几步,读取配置文件(application.yml)中各种不同类型的属性值: 1.引入依赖: <!-- 支持 @ConfigurationProperties 注 ...
随机推荐
- 《DSP using MATLAB》Problem5.33
代码: %% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ %% Output In ...
- wekpack笔记
1. webpack 是一个用来构建我们应用程序中的 JavaScript 模块的工具: 2. 可以从CLI 或 API来开始使用 webpack.这里只讲从CLI来使用它: 3. 安装,需要在nod ...
- centos7设置grub密码保护
设置grub密码保护:查看grub登录用户名cat /etc/grub.d/01_users,可以看到用户名为root.通过grub2-setpasswords设置grub密码,确认密码 cat /b ...
- C++中的显式类型转换
一.学习总结 1.C++中额外提供的类型转换有 (1) reinterpret_cast: 格式:reinterpret_cast<type-id> (expression)①type-i ...
- pushpin openresty 集成试用
pushpin 是一个很不错的将restapi 转换为reailtime api 的proxy,openresty 具有很强的nginx 控制能力 可以方便的用来进行api 的开发,默认其他语言pus ...
- vmware中扩充磁盘
刚开始装虚拟机中的系统时,只分了20G的空间大小,随着不断的使用,结果在安装一个软件的时候提示我磁盘空间不足 用"df -h "查看"/"目录使用率已达到90% ...
- Web API统一异常处理 【转载】
前面讲了webapi的安全验证和参数安全,不清楚的朋友,可以看看前面的文章,<Web API系列(二)接口安全和参数校验>,本文主要介绍Web API异常结果的处理.作为内部或者是对外提供 ...
- 用Hi3518EV200板当spi烧录器
1. setenv bootargs setenv bootcmd 2.ddr烧录uboot 3.uboot下tftp下载文件 mw.b ff ;tftp ;sf erase ;sf write ; ...
- setsockopt调用IP_ADD_MEMBERSHIP出错errno:19 no such device
if (setsockopt(fd,IPPROTO_IP,IP_ADD_MEMBERSHIP,&mreq,sizeof(mreq)) < 0) { pri ...
- 20165308 《Java程序设计》第9周学习总结
20165308 <Java程序设计>第9周学习总结 教材学习内容总结 13章知识总结 获取地址 1.获取Internet上主机的地址 可以使用InetAddress类的静态方法getBy ...