拦截器
目录
使用 XMLHttpRequest 发起 POST 请求,并携带查询参数
用字符串的方式来表示的对象或数组的类型的数据,叫做JSON数据
调用浏览器的JSON.parse()函数,可以把JSON格式转为JS数据格式
把 XMLHttpRequest 请求到的 JSON 数据反序列化为 JS 对象
拦截器就是用来全局拦截axios的每一次请求和响应
好处:可以把每个请求种,某些重复性的业务代码封装起来到拦截器中,提高代码的复用性
不使用拦截器--实现loading效果
需要在每一个请求中分别展示和隐藏loading效果
使用拦截器--实现loading效果
在请求拦截器中展示loading效果
在响应拦截器中隐藏loading效果
文件上传
FormData
概念:FormData 是浏览器提供的一个WebAPI,它是以键值对的方式进行存储的数据的
作用:FormData 配合Ajax技术,能够向服务器发送 multipart/form-data格式的请求体数据
典型应用场景FormData+Ajax技术实现文件上传的功能
注意:Ajax实现文件上传的时候,请求体的编码格式必须是 multipart/form-data。
FormData的基本用法
FormData 是一个构造函数,new FormData() 即可得到FormData对像
let fd = new FormData() -----> 创建一个空白的FormData对象,里面没有包含任何数据
let fd = new FormData(表单对象)
调用 FormData 对像的appen(键,值)方法,可以向空白的FormData 中追加键值对数据,其中:
键 表示 数据项的名字,必须是字符串
值 表示数据项的值,可以是任何类型的数据
fd.append('username','张三') -----> 键是username,值是字符串的类型
fd.append('age',20) -------> 键是age, 值是数字类型
fd.append('avatar',图片文件) --------> 键是avatar,值是文件类型
发送普通的FormData数据
FormData+axios向服务器提交普通的数据(不包含文件上传)
XMLHttpRequest
XMLHttpRequest是浏览器内置的构造函数
作用:基于new 出来的 XMLHttpRequest 实例对象,可以发起Ajax的请求
axios 中的 axios.get()、axios.post()、axios() 方法,都是基于 XMLHttpReques(简称XHR)封装出来的
使用XMLHttpRequest发起get请求
主要4个步骤实现
1.创建xhr对象
2.调用xhr.open() 函数
3.调用 xhr.send() 函数
4.监听 load 事件
发起get请求时携带查询参数
可以在请求的URL地址后面通过?的形式携带查询参数。
使用 XMLHttpRequest 发起 POST 请求,并携带查询参数
当需要携带请求体数据时,需要进行额外的两步操作
1.在xhr.open()之后,调用xhr.setRequestHeader()函数,指定请求体的编码格式
2.在xhr.send()中,指定要提交的请求体数据
数据交换格式
数据交换格式,就是服务器端与客户端之间数据传输的格式
两种数据交换格式
1.XML(很少用) 2. JSON(主流)
JSON(全称:JavaScript Object Notation) 是一种数据交换格式,它本质上是用字符串来表示对象和数据类型的数据
JSON数据
用字符串的方式来表示的对象或数组的类型的数据,叫做JSON数据
JSON数据的格式有两种:1.对象格式 2.数组格式
对象格式的JSON数据
对象格式的JSON数据,最外层使用 { } 进行包裹,内部的数据为 key: value 的键值对jie'go
1.key 必须使用英文的双引号进行包裹
2.value 的值只能是字符串 、数字 、布尔值 、null 、数组 、对象类型(可选类型只有这六种)
数组格式的JSON数据
数组格式的JSON数据,最外层使用 [ ] 进行包裹,内部的每一项数据之间使用英文,分隔 其中:
每一项的值类型只能是字符串、数组、布尔值、null、数组、对象这六种类型之一
把JSON数据转为JS数据
调用浏览器的JSON.parse()函数,可以把JSON格式转为JS数据格式
把JS数据转换为JSON数据
调用浏览器内置的 JSON.stringify() 函数,可以把JS数据转换为JSON的格式数据
序列化和反序列化
1.把真实数据转换为字符串的过程,叫做序列化
2.把字符串转为真实数据的过程,叫做反序列化
把 XMLHttpRequest 请求到的 JSON 数据反序列化为 JS 对象
在 xhr 对象的load事件中,通过xhr.response访问到的是JSON格式的字符串数据,可以调用JSON调用JSON.parse() 函数将 xhr.response 转换为JS对象
JSON文件
后缀名是.JSON的文件叫做JSON文件,专门用来存储JSON格式的数据
注意: .json 结尾的文件,一般都是项目的配置文件
后面的 Node.js 课程中,我们会讲解并使用 package.json 这个配置文件
JSON文件的语法要求
在JSON文件中国定义JSON格式的数据时,要遵守以下的6条规则
1.属性名必须使用双引号包裹
2.字符串类型的值必须使用双引号包裹
3.JSON中不允许使用单引号表示字符串
4.JSON中不能写注释
5.JSON的最外层必须时对象或数组的格式
6.不能使用 undefined 或函数作为JSON的值