script img标签addEventListener('onload')无效
直接onload就可以
script.onload= function(){...};
HTML DOM nodeType
如果节点是元素节点,则 nodeType 属性将返回 1。
如果节点是属性节点,则 nodeType 属性将返回 2。
dom.addEventListener可以重复对元素添加对某一事件的响应
dom.on('keydown', e => {
if (e.keyCode !== 8) {
return
}
});
dom.on('keydown', e => {
if (e.keyCode !== 13) {
return
}
});
虽然上边两部分都是dom对keydown的响应,但是,后边的方法并不是同一个方法,所以这两个方法会按注册次序依次响应
跨域传cookie,XMLHttpRequest.withCredentials
这个指示也会被用做响应中cookies 被忽视的标示。默认值是false。
如果在发送来自其他域的XMLHttpRequest请求之前,未设置withCredentials 为true,那么就不能为它自己的域设置cookie值。而通过设置withCredentials 为true获得的第三方cookies,将会依旧享受同源策略,因此不能被通过document.cookie或者从头部相应请求的脚本等访问。
- 原生用法:
xhr.withCredentials = true;
xhr.send(formdata);
- axios用法
config: {
withCredentials: true
}
另外,后端的配置也要做响应的更改,node为例
const express = require('express')
const app = express()
const cors = require('cors') // 此处我的项目中使用express框架,跨域使用了cors npm插件
app.use(cors{
credentials: true,
origin: 'http://localhost:8081', // web前端服务器地址
// origin: '*' // 这样会出错
})
cookie原理
由于HTTP是一种无状态的协议,服务器单从网络连接上无从知道客户身份。怎么办呢?就给客户端们颁发一个通行证吧,每人一个,无论谁访问都必须携带自己通行证。这样服务器就能从通行证上确认客户身份了。这就是Cookie的工作原理。
Cookie实际上是一小段的文本信息。客户端请求服务器,如果服务器需要记录该用户状态,就使用response向客户端浏览器颁发一个Cookie。客户端浏览器会把Cookie保存起来。当浏览器再请求该网站时,浏览器把请求的网址连同该Cookie一同提交给服务器。服务器检查该Cookie,以此来辨认用户状态。服务器还可以根据需要修改Cookie的内容。
cookie,localStorage和sessionStorage的区别
18-12-30-cookie-storage.png
HTML DOM cloneNode(deep)
- 当deep为true时,会克隆节点及其属性,以及后代(会复制节点的innerText)
- 当deep为false时,克隆节点及其后代(不会复制节点的innerText)
- 以上两种都不会复制元素的监听事件
markdown中的flow流程图
见flow流程图专题
线上mock-server服务
www.easy-mock.com/ foolseward 443