记录前后端不同域名 携带 cookie,及如何处理 Chrome SameSite
在登陆时为了安全 后端将 cookie 种在他的域名上,也导致联调时会出现的一些问题~
前端请求携带 cookie
Axios withCredentials = true
axios.create({ withCredentials: true,});
Fetch credentials = 'include'
fetch("url", {method: 'POST(GET)', credentials: "include"})
当然前端携带上 cookie 只是第一步,前提得需要后端正确的种上了 cookie,我们才可以携带
处理 Chrome SameSite 和 Secure由于 Chrome 禁止了第三方 cookie 回导致上面的后端 cookie 前端是不会携带的。
sameSite 属性
Strict (完全禁止第三方 Cookie,跨站点时,任何情况下都不会发送 Cookie。换言之,只有当前网页的 URL 与请求目标一致,才会带上 ...
Mac下 Nginx、openssl,配置本地 Localhost Https 测试环境
直入主题
使用 openssl 生成文件
建议在 Nginx 配置文件路径内执行
openssl req -x509 -nodes -days 36500 -newkey rsa:2048 -keyout ./nginx.key -out ./nginx.crt
按步骤填写 optCountry Name (2 letter code) [XX]: CNState or Province Name (full name) []: <你的地区(任意填写)> Locality Name (eg, city) [Default City]: <你的地区(任意填写)> Organization Name (eg, company) [Default Company Ltd]: 回车Organizational Unit Name (eg, section) []: 回车# hostname 你需要 https 的Common Name (eg, your name or your server's hostname) []: localhost# ...
在线生成短链接,新浪短链接 t.cn
在线生成短链接
.short-url {
margin: auto;
width: max-content;
}
.wl-input-default {
display: inline-block;
outline: none;
/*height: calc(14 + 2px);*/
padding: 0 11px;
font-size: 14px;
font-weight: 400;
line-height: 1.5;
color: #495057;
background-color: #fff;
background-clip: padding-box;
border: 1px solid #ced4da;
border-radius: 0.25rem;
transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
}
.wl-input-default: ...
webStorm 开发,配置 ts(TypeScript)的 FileWatchers
平时的 TS 文件都交给 webpack 了,写个 demo 又不想手动编译,那只能麻烦编辑器了~
安装 TSscriptnpm install typescript -g# 查看版本tsc -v
在 webStorm 中设置 watcher
看高亮
在 setting 中找到 tools/File Watchers, 点击下面的 + 按钮添加一个 watcher
各项配置如下
带 sourceMap 的
# Program/usr/local/lib/node_modules/typescript/bin/tsc $FileName$ $FileNameWithoutExtension$.js --sourceMap# Arguments$FileNameWithoutExtension$.js:$FileNameWithoutExtension$.js.map# Output paths to refresh$FileNameWithoutExtension$.js# Working directory$FileDir$
无 sourceMap
# Pro ...
微信小程序 - typeScript 的配置与热加载
本篇可了解如何在小程序中使用和配置 TypeScript,并配置热重载
项目结构
建议由官方开发工具生成的目录结构。(注意时间和版本区别导致结构的异同)
+ ├── config // 这层文件夹需不需要随便你+ │ │── index.js // 自动编译运行 js ├── app.js // 全局 js ├── miniprogram // 如果是官方工具生成项目,应该会有这个目录 │ │── app.ts │ │── component │ │ .... └── ....
编辑 /config/index.js
没有依赖先安装依赖:npm child_process node-watch -S -D
const exec = require('child_process').exec;const watch = require('node-watch');const path = require('path');// 路径,根据自己的情况更换const basicPath ...
win10 重装系统,电脑出现:"由于最近更改电脑硬件而无法正常启动",或重装卡在:"海内存知己"等问题解决方法
前言本篇不仅可以学到如何重装系统,还能解决在重装中遇到的各种问题,绝了。(也是佩服我,重装一次改遇到的问题全有了)
罗列问题(按装系统顺序列出~)
开机出现 "由于最近更改电脑硬件而无法正常启动",如下图
重装出现 "Windows 安装程序无法将 Windows 配置为此计算机的硬件上运行",如下图
上一步中使用 msoobe.exe 出现或卡在 海内存知己,天涯若比邻,如下图
U盘 重装系统 微软官方 PE 中出现 "缺少计算机所需的介质驱动程序。。。",看下图
专业版系统可能会出现:点击关机后又重新启动的情况(这个莫得图 ~)
开装 ~
如果你只是单纯的想重装系统建议使用微软官方的 u盘 制作工具,一键制作启动盘,并且他的镜像下载速度更快~
使用 Rufus 制作系统盘
软件地址不留了
下载正版的Win10镜像 MSDN 地址
不建议去一些啥系统之家下载 Ghost 之内的镜像,或者使用排名名列前茅的 制作启动盘工具,安全问题另说,系统肯定不会是纯净的
开始制作
分区类型默认 MBR,如果你需要 UEFI ...
算法- js 二叉树,二叉查找树的基本实现及递归与循环的版本
二叉树
二叉树是一种属性结构,它的特点是每个节点最多只有两个分支节点,一颗二叉树通常由根节点,分支节点,叶节点组成,而每个分支节点也常常被称作为一颗子树。
根节点:二叉树最顶层的节点
分支节点:除了根节点以外且拥有叶子节点
叶节点:除了自身没有其他节点
中节点:当前节点的父节点(中序遍历)
层
根的层次为0(一般来说),根的直接左右孩子层次为1,以此类推逐渐递增
度
二叉树节点的度数指该节点所含子树的个数
二叉树的深度是指所有节点中最深节点(叶节点)所在层数
常用术语: 在二叉树中,我们常常用父节点和子节点来描述,你如图中的2为6和3的父节点,反之6和3是2的子节点
二叉树的三个性质
在二叉树的第 i 层上,之多有 2 ^ (i - 1) 个节点
i=1时,只有一个根节点,2^(i-1) = 2^0 = 1深度为k的二叉树至多有2^k-1个节点.
i=2时,2^k-1 = 2^2 - 1 = 3个节点对任何一棵二叉树T,如果总结点数为n0,度为2(子树数目为2)的节点数为n2,则n0 ...
异或运算符 ^ 理解与应用
简单搞一题
异或运算符 ^特性
交换律:a ^ b ^ c <=> a ^ c ^ b
任何数与 0 异或,为任何数:0 ^ n => n
相同的数异或为 0
搞一题
给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?
输入: [2,2,1]输出: 1
var singleNumber = function(nums) { let xor; for (let i = 0; i < nums.length; i++) { xor ^= nums[i] }};
根据特性 1,所以上面的可以理解为2 ^ 2 ^ 1 => 0 ^ 1 => 1
面试 - js 在指定数组中找出不重复的两数之和为 target
简单搞一题,逆思维解法
原题
给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。
给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]
解var twoSum1 = function(nums, target) { for (let i = 0, length = nums.length; i < length; i++) { const current = nums[i]; const diff = target - current; if (diff === current) continue; const tIndex = nums.lastIndexOf(diff); if (tIndex > -1) return [i, tIndex] }& ...
面试 - js 二分法,二分查找
记录二分法
二分法
二分查找是一种高效搜索法,是一种可以在有序数组中搜索到特定元素的算法
优缺点
优:比较次数少,查找速度快,平均性能好,
缺: 要求待查表为有序表,且插入删除困难,
const arr = [2, 1, 3, 5, 6, 4, 7]; function bubbleSort(arr) { if (!arr.length) return arr; const copyArr = arr.slice(); for (let i = 0, length = copyArr.length; i < length; i++) { for (let j = 0; j < length - i - 1; j++) { const current = copyArr[j]; const next = copyArr[j + 1]; if (current > next) [copyArr[j], copyArr[j + 1]] = [next, current] ...