一.AJAX原理 - XMLHttpRequest
-
AJAX 是浏览器与服务器通信的技术,采用 XMLHttpRequest 对象相关代码
-
axios 是对 XHR 相关代码进行了封装,让我们只关心传递的接口参数
-
学习 XHR 也是了解 axios 内部与服务器交互过程的真正原理
语法:
// 1. 创建 XMLHttpRequest 对象
const xhr = new XMLHttpRequest()
// 2. 配置请求方法和请求 url 地址
xhr**.open**('get', 'hmajax.itheima.net/api/provinc…')
// 3. 监听 loadend 事件,接收响应结果
xhr**.addEventListener('loadend', ()** => {
console.log(xhr.response) //接受响应结果
console.log(xhr.status) //接受响应状态码
})
// 4.发起请求
xhr**.send()**
查询参数
定义:浏览器提供给服务器的额外信息,让服务器返回浏览器想要的数据 语法:xxxx.com/xxx/xxx?参数名…
数据提交
需求:通过 XHR 提交用户名和密码,完成注册功能 核心: 请求头设置 Content-Type:application/json 请求体携带 JSON 字符串
二.Promise
表示(管理)一个异步操作最终状态和结果值的对象
语法:
const p = new Promise((resolve,reject)=>{
// 在回调函数中,可以执行异步任务(定时器 / AJAX)
setTimeout(()=>{
resolve('成功') // 参数1:resolve 成功的回调
reject('失败')// 参数2:reject 失败的回调
},3000)
})
p.then(result*=>*{
console.log(result);
}).catch(error*=>*{
console.log(error);
})
Promise - 三种状态
作用:了解Promise对象如何关联的处理函数,以及代码执行顺序 概念:一个Promise对象,必然处于以下几种状态之一 待定(pending) :初始状态,既没有被兑现,也没有被拒绝 已兑现(fulfilled) :意味着,操作成功完成 已拒绝(rejected) :意味着,操作失败
注意:Promise对象一旦被兑现/拒绝 就是已敲定了,状态无法再被改变