Fetch、Ajax 请求遇到301或302时
在请求中遇到301,302时浏览器会寻找 Location 并跳转,此时的 Fetch或Ajax 是处理不到这处的跳转请求。需要手动跳转的话还是协商401,前端再做拦截 // 添加响应拦截器 (Axios) instance.interceptors.response.use( (response) => { switch (response?.data?.code) { case 401: { return Promise.resolve(response); } default: break; } return Promise.resolve(response); }, );
记录前后端不同域名 携带 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 与请求目标一致,才会带上 Cookie) Lax...
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]: CN State 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; } ...
webStorm 开发,配置 ts(TypeScript)的 FileWatchers
平时的 TS 文件都交给 webpack 了,写个 demo 又不想手动编译,那只能麻烦编辑器了~ 安装 TSscriptpnpm install typescript -g # 查看版本 tsc -v 在 webStorm 中设置 watcher 看高亮 在 setting 中找到 tools/File Watchers, 点击下面的 + 按钮添加一个 watcher 各项配置如下# Program tsc # Arguments - tsc 的参数 $FileName$ --outfile $FileNameWithoutExtension$.js --target esnext --allowJs # Output paths to refresh $FileNameWithoutExtension$.js # Working directory $FileDir$
微信小程序 - 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,如果你需要...
算法- 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 =...
异或运算符 ^ 理解与应用
简单搞一题 异或运算符 ^特性 交换律: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 >...