关于如何快速解决一个自己知识以外的问题的思考

做好任何事情都是讲究方法的,这是我健身之后的一个领悟,用正确的方式做事,自己的付出才能有价值。

首先分析问题:

比如我想清除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中的属性值之对解决问题的思考的更多相关文章

  1. <s:property="a" value=""/>取的<s:debug></s:debug>中的value stack中的属性值

    <s:property="a"  value=""/>取的<s:debug></s:debug>中的value stack中 ...

  2. 将source类中的属性值赋给target类中对应的属性

    /** * 对象的属性值拷贝 * <p> * 将source对象中的属性值赋值到target对象中的属性,属性名一样,类型一样 * <p> * example: * <p ...

  3. Spring中使用@Value读取porperties文件中的属性值方法总结及注意事项

    本文为博主原创,转载请注明出处. 此前曾总结过使用工具类读取properties文件中的属性值,有兴趣的可以看一下. 如何快速获取properties中的配置属性值:https://www.cnblo ...

  4. 【Python】获取翻页之后的各页面中的属性值。

    如何获取翻页之后的页面中的html标签中的属性值? # coding=utf-8 from selenium import webdriver if __name__=="__main__& ...

  5. ajax取到数据后如何拿到data.data中的属性值

    今天遇到的ajax取到数据后如何拿到data.data中的属性值的问题 比如拿到了数据 我要取出data中的name 题外话:当然取名最好别取什么奇怪的xiaobi

  6. 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 ...

  7. js获取cookie中存储的值

    最近看了试卷题目发现自己会的十分的匮乏, 第一题就把自己难住了,知道有这个东西,但是实际上没有操作过. ========================================= cookie ...

  8. 在函数中处理html点击事件在标签中增加属性值来解决问题。

  9. spring boot 读取配置文件(application.yml)中的属性值

    在spring boot中,简单几步,读取配置文件(application.yml)中各种不同类型的属性值: 1.引入依赖: <!-- 支持 @ConfigurationProperties 注 ...

随机推荐

  1. CodeForces - 710F:String Set Queries (二进制分组 处理 在线AC自动机)

    ou should process m queries over a set D of strings. Each query is one of three kinds: Add a string ...

  2. pat--7-11 出栈序列的合法性(25 分)

    7-11 出栈序列的合法性(25 分) 给定一个最大容量为 M 的堆栈,将 N 个数字按 1, 2, 3, ..., N 的顺序入栈,允许按任何顺序出栈,则哪些数字序列是不可能得到的?例如给定 M=5 ...

  3. 错题:Test3

    /** * * @ClassName: test3 * @Description: TODO(请问主程序运行结果是什么?) * @author yk * @date 2017年3月9日 上午11:20 ...

  4. HDU2023:求平均成绩

    Problem Description 假设一个班有n(n<=50)个学生,每人考m(m<=5)门课,求每个学生的平均成绩和每门课的平均成绩,并输出各科成绩均大于等于平均成绩的学生数量. ...

  5. linux 执行脚本

    crontab -e 直接编辑定时脚本 保存后,在/var/spool/cron/下自动生成一个以用户名命名的脚本文件.

  6. linux cent os 6 的安装

    目前,只有图片,没有仔细写,这是在虚拟机内的安装:

  7. 小米4c刷LineageOS

    注意,本文仅限于小米4c,其他手机仅可参考步骤.如下rom,su,gapps包的下载都是小米4c的,深刷miflash也仅适用于小米手机.准备工作:请自行备份好手机内的个人资料. 电脑环境,usb驱动 ...

  8. ODOO v10.0 自动生成财务凭证的科目设置

    ODOO v10.0 自动生成财务凭证的科目设置 可以在产品类别及产品档案里设置,建议在产品类别下设置,方便维护. 项目 设置为(具体科目以公司科目表为主) 对应作用业务 Income Account ...

  9. queue 的基本用法

    queue 1.back() 返回一个引用,指向最后一个元素2.empty() 如果队列空则返回真3.front() 返回第一个元素4.pop() 删除第一个元素5.push() 在末尾加入一个元素6 ...

  10. ios 上浏览器返回上一页不会刷新页面问题,页面初始化的方法不执行

    https://blog.csdn.net/yang450712123/article/details/79276102 https://blog.csdn.net/Chengbin_Huang/ar ...