一句话记录
有时候修改由 git 提交过的文件名称的大小写无效
全局设置 Git 大小写敏感 git config --global core.ignorecase false
后端工程设置了允许所有源跨域请求,前端依旧调用失败
一般带有登录鉴权的请求,前端需要配置withCredentials: true
,此时后端 cors
配置如果为*
,则浏览器依旧会有限制,此时后端应配置请求的来源地址而不是*
target="_blank"的安全漏洞
使用 window.open 或 a 标签 target="_blank",目标页面可以通过opener.location.replace
跳转钓鱼网站,可通过重置 opener 可以阻止目标页的相关程序
js
var otherWindow = window.open('https://xxxx')
otherWindow.opener = null
otherWindow.location = url
a标签跳转可直接添加属性rel,其中
// noopener:将 window.opener置空
// noreferrer:兼容老浏览器/火狐。禁用HTTP头部Referer属性(后端方式)
<a target="_blank" href="" rel="noopener noreferrer nofollow">xxx</a>
伪类与伪元素的区别
伪类用于当已有的元素处于某个状态时,为其添加对应的样式,这个状态是根据用户行为而动态变化的。比如,当用户悬停在指定的元素时,我们可以通过:hover 来描述这个元素的状态。
伪元素用于创建一些不在文档树中的元素,并为其添加样式。它允许我们为元素的某些部分设置样式。比如,我们可以通过::before 来在一个元素前增加一些文本,并为文本添加样式。虽然用户可以看到文本,但是实际上它不在文档树中。
npm run xxx 基本原理
运行
npm run xxx
的时候,npm 会先在当前目录的 node_modules/.bin 查找要执行的程序,如果找到则运行没有找到则从全局的 node_modules/.bin 中查找,npm i -g xxx 就是安装到到全局目录
如果全局目录还是没找到,那么就从 path 环境变量中查找有没有其他同名的可执行程序
通过设置元素的边框属性border-inline/block-start/end-width
可以实现类按钮组的样式(边框问题)
https://ant.design/components/radio-cn