前后端通信
同源策略
- 同源策略(MDN 解释):限制从一个源加载的文档或脚本如何与来自另一个源的资源进行交互。这是一个用于隔离潜在恶意文件的关键的安全机制。
- 源:协议、域名、端口。
- 限制:无法获取 Cookie 、 LocalStorage 和 IndexDB ,无法操作 dom ,不能发送 Ajax 。
前后端通信方式
- Ajax:不支持跨域。
- WebSocket:支持跨域。
- CORS:支持跨域。
onreadystatechange 事件
readyState:
- 0:请求未初始化
- 1:服务器连接已建立
- 2:请求已接收
- 3:请求处理中
- 4:请求完成,响应就绪
触发顺序:
- xhr.onreadystatechange
- xhr.onloadstart
- xhr.upload.onloadstart
- xhr.upload.onprogress
- xhr.upload.onload
- xhr.upload.onloaded
- xhr.onprogress
- xhr.onload
- xhr.onloaded
Ajax 请求:
1 | var ajax = function (param) { |
update: Promise 改造
1 | var ajax = ({ type, url, data, header }) => |
跨域通信的方式:
- JSONP:只支持 GET 请求,通过 script 的异步加载实现
- WebSocket
- CORS:跨域时,会在请求头增加 Origin 字段
- Hash
- postMessage: window.postMessage() 发送