18-12-30

139 阅读2分钟

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或者从头部相应请求的脚本等访问。
  1. 原生用法:
xhr.withCredentials = true;
xhr.send(formdata);
  1. 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