## :-: 原生 Ajax请求
```
// Ajax
function Ajax(url, type, data, callback) {
var xhr = null;
// 兼容IE浏览器、
if (window.XMLHttpRequest) {
// 主流浏览器方法、Google Opera
xhr = new XMLHttpRequest();
} else {
// IE方法
xhr = new ActiveXObject('Microsoft.XMLHttp')
}
// 给xhr绑定状态事件、onreadystatechange
xhr.onreadystatechange = function() {
// 请求过程中的进度 1 2 3 4 (4为完成)
console.log(xhr.readyState);
if (xhr.readyState == 4) {
// 返回的状态吗 200 302 404 503
if (xhr.status == 200) {
console.log(xhr.responseText);
typeof callback === 'function' && callback(xhr.responseText);
}
}
}
// 判断请求类型
if (type == 'POST') {
// 当post类型时需要在 .send 中传递数据、
xhr.send(data);
// 设置请求协议头、(默认类型)
xhr.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
// 1.请求类型 2.url true 是否异步加载、
xhr.open(type, url, true);
} else {
// 1.请求类型 2.url true 是否异步加载、
xhr.open(type, url + '?' + data, true);
}
}
// 回调函数、
function callback(data) {
console.log(data);
}
```
## :-: 笔记
```
1. ajax XMLHTTPRequest
2. 网络的基础知识
(1) 同源策略 (协议 , 域名 , 端口号三者均相同 ---》 同源)
浏览器提出的 浏览器再判断同源的时候是在数据返回的时候判断的
Access-Control-Allow-Origin: * ===> CORS跨域
(2) 请求方式 GET POST HEAD PUT DELETE
(3) 状态码 2xx ===> 服务器成功返回数据 3xx 重定向
4xx 客户端错误 400 查看请求参数 大小写 数据格式等
5xx 服务器错误 找服务器端工作人员
(4) HTTP 和 HTTPS 区别 ---》 安全性 RSA
(5) 跨域
客户端与服务器端的跨域
1. JSONP 原理 : src属性不受同源策略的限制 适合所有浏览器的 大多使用get请求方式 jquery提出
搜索功能经常用到jsonp
2. document.domain 基础域名相同
3. 服务器代理中转 ===》 最常见的方式 公司里面最常用
4. CORS 跨域 服务器端设置响应头 w3c新标准里面出现的 IE10之前不兼容
------------------
6. iframe ---》 页面与页面之间的
父页面请求子页面的方式: window.name 需要中间层
子页面请求父页面的方式: location.hash
postMessage ====> h5新增的
第一个参数 是传递的数据 第二个参数是往哪个页面传递数据 哪个页面的域
```
> ## :-: [HTTP 状态消息 - 状态码](http://www.w3school.com.cn/tags/html_ref_httpmessages.asp)
- 前端工具库
- HTML
- CSS
- 实用样式
- JavaScript
- 模拟运动
- 深入数组扩展
- JavaScript_补充
- jQuery
- 自定义插件
- 网络 · 后端请求
- css3.0 - 2019-2-28
- 选择器
- 边界样式
- text 字体系列
- 盒子模型
- 动图效果
- 其他
- less - 用法
- scss - 用法 2019-9-26
- HTML5 - 2019-3-21
- canvas - 画布
- SVG - 矢量图
- 多媒体类
- H5 - 其他
- webpack - 自动化构建
- webpack - 起步
- webpack -- 环境配置
- gulp
- ES6 - 2019-4-21
- HTML5补充 - 2019-6-30
- 微信小程序 2019-7-8
- 全局配置
- 页面配置
- 组件生命周期
- 自定义组件 - 2019-7-14
- Git 基本操作 - 2019-7-16
- vue框架 - 2019-7-17
- 基本使用 - 2019-7-18
- 自定义功能 - 2019-7-20
- 自定义组件 - 2019-7-22
- 脚手架的使用 - 2019-7-25
- vue - 终端常用命令
- Vue Router - 路由 (基础)
- Vue Router - 路由 (高级)
- 路由插件配置 - 2019-7-29
- 路由 - 一个实例
- VUEX_数据仓库 - 2019-8-2
- Vue CLI 项目配置 - 2019-8-5
- 单元测试 - 2019-8-6
- 挂载全局组件 - 2019-11-14
- React框架
- React基本使用
- React - 组件化 2019-8-25
- React - 组件间交互 2019-8-26
- React - setState 2019-11-19
- React - slot 2019-11-19
- React - 生命周期 2019-8-26
- props属性校验 2019-11-26
- React - 路由 2019-8-28
- React - ref 2019-11-26
- React - Context 2019-11-27
- PureComponent - 性能优化 2019-11-27
- Render Props VS HOC 2019-11-27
- Portals - 插槽 2019-11-28
- React - Event 2019-11-29
- React - 渲染原理 2019-11-29
- Node.js
- 模块收纳
- dome
- nodejs - tsconfig.json
- TypeScript - 2020-3-5
- TypeScript - 基础 2020-3-6
- TypeScript - 进阶 2020-3-9
- Ordinary小助手
- uni-app
- 高德地图api
- mysql
- EVENTS
- 笔记
- 关于小程序工具方法封装
- Tool/basics
- Tool/web
- parsedUrl
- request