Es6新语法-ajax请求的五种状态状态
ajax请求的五种状态状态
(1)面试点 : ajax请求状态
提问1 : 能简单的说一下ajax有哪几种请求状态吗?
提问2 : ajax发送请求的时候,状态如何变化的
(2)学习目标: XMLHttpRequest对象两个事件
xhr.onload : 服务器响应数据执行 ( 一次请求,只会执行一次 )
* 当xhr.readyState == 4 才会执行
xhr.onreadystatechange : ajax请求状态变化执行 (一次请求,会执行多次)
请求状态: xhr.readyState
0: 请求未初始化 (open之前,没有设置地址和方法)
1: 服务器连接已建立 (open之后,已经设置了地址和方法)
2: 请求已接收 (onreadystatechange事件里面执行,服务器已接收请求)
3: 请求处理中 (onreadystatechange事件里面执行,服务器正在处理)
4: 请求已完成,且响应已就绪 (onreadystatechange事件里面执行,服务器正在响应)
代码详细讲解
let xhr = new XMLHttpRequest()
console.log( xhr.readyState )
xhr.open('get', 'http://ajax-base-api-t.itheima.net/api/getbooks')
console.log( xhr.readyState )
xhr.send()
console.log( xhr.readyState )
xhr.onreadystatechange = function() {
console.log( xhr.readyState )
console.log(xhr.responseText)
}
get与post区别
/*get与post区别
1.传参方式不同
get : 参数直接在url后面拼接 (请求行)
post:参数在xhr.send()中发送(请求体)
2.传参速度不同
get : 速度快
post : 速度慢
3.数据大小不同
get : 有大小限制。 不同浏览器大小不一样 。 一般2-5KB
post : 无限制
* 一般带文件的接口都是post
4.安全性不同
get : 安全性低
post : 安全性高
* 一般登录注册都是post
*/
axios拦截器
1.axios拦截器作用 : 在 请求或响应 之前拦截ajax
2.axios拦截器原理流程 :
(1) axios()发送请求
(2) 执行: 请求拦截器
(3) 请求拦截器 把请求 发给 服务器
(4) 服务器响应数据
(5) 执行: 响应拦截器
(6) 响应拦截器 把数据 发给 then(res=>{})
代码演示
axios.interceptors.request.use(function (config) {
return config;
}, function (error) {
return Promise.reject(error);
});
axios.interceptors.response.use(function (response) {
return response;
}, function (error) {
return Promise.reject(error);
});
ajax组成部分 : 异步js和XML
1. A : 异步 asynchronous
(1)js代码主要两种: 同步代码 与 异步代码
(2)同步代码 : 按照从上往下顺序解析
(3)异步代码 : 不会立即执行,而是延迟执行
事件处理函数、 定时器函数 、 ajax回调
2. j : javascript
3. a : and
4. X
(1)XMLHttpRequest : 发送ajax请求
(2)XML : 作用和json完全一致,都是解决跨平台数据传输 (json之前的初代王者)
* ajax技术刚出来的时候,json还没有流行。 那个时候ajax返回的是XML数据格式。 后面json普及之后,所有的接口都是返回json。 但是XML格式由于对ajax历史的贡献,一直保留至今。