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

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

首先分析问题:

比如我想清除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. 51Nod 1459:迷宫游戏(最短路)

    1459 迷宫游戏  基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题  收藏  关注 你来到一个迷宫前.该迷宫由若干个房间组成,每个房间都有一个得分,第一次进入这个房间, ...

  2. 容器(container)

    一.容器有哪些 平时我们经常看到各种容器名称:Servlet容器.WEB容器.Java WEB容器.Java EE容器等 二.容器是什么 2-1     容器通常理解就是装东西的,我们这里说技术上的容 ...

  3. hdu2609 How many 字典树+最小表示法

    Give you n ( n < 10000) necklaces ,the length of necklace will not large than 100,tell meHow many ...

  4. Caused by: java.sql.SQLException: ORA-24816: 在实际的 LONG 或 LOB 列之后提供了扩展的非 LONG 绑定数据

    今天客户说报告草稿保存不了,跟踪错误bug,了解到以下reason: 异常出现的环境:oracle11g + Hibernate 错误分析:这是oracle 11g在clob字段中的一个bug,ora ...

  5. ORM 创建manytomay的三种方法 反向查询 和一些 双下方法版学员管理系统3

    老师信息管理   三种创建多对对外键的方式常用第二种和第三种 思考 三种方式创建多对多外键方式及其优缺点. 外键的查询和使用 1外键的创建: 在数据库表中的表现形式 如何连表查询和使用 表里边:  s ...

  6. lerna import && add 使用&&常见问题解决

    使用lerna 的import 我们可以方便的将一个普通的npm 包倒入到lerna 管理的monorepo 中 环境准备 lerna init 注意必须是一个git 项目,同时需要commit ,不 ...

  7. supervisor使用总结

    简介: Supervisor是一个进程控制系统. 它是一个C/S系统(注意: 其提供WEB接口给用户查询和控制). 它允许用户去监控和控制在类UNIX系统的进程. 它的目标与launchd.daemo ...

  8. 【转载】Win10桌面图标有小箭头怎么去掉?Win10去掉桌面图标小箭头的方法

    以下文章转载至系统之家 网址:http://www.xitongzhijia.net/xtjc/20190104/146560.html Win10桌面图标有小箭头怎么去掉?Win10去掉桌面图标小箭 ...

  9. 主机-配件-接口-整机-3c-1

    standby 待机 hibernate 休眠(睡眠) power-off 关机 usb端口能给外部设备充电在低压状态(standby,hibernate,power-off),如果系统运行在batt ...

  10. Ubuntu16.04 64位编译安装Hi3520D_SDK_V1.0.4.0

    1.复制uboot/tools/mkimage到环境变量路径 2.修改kernel/timeconst.pl,删除define 3.busybox makefile修改: /itc_work/hi35 ...