0
点赞
收藏
分享

微信扫一扫

Ajax第三天

往复随安_5bb5 2022-01-11 阅读 60

拦截器

目录

拦截器

不使用拦截器--实现loading效果

使用拦截器--实现loading效果

文件上传

FormData

FormData的基本用法

发送普通的FormData数据

XMLHttpRequest

使用XMLHttpRequest发起get请求

 发起get请求时携带查询参数

使用 XMLHttpRequest 发起 POST 请求,并携带查询参数

 数据交换格式

JSON数据

用字符串的方式来表示的对象或数组的类型的数据,叫做JSON数据

对象格式的JSON数据

 数组格式的JSON数据

把JSON数据转为JS数据

调用浏览器的JSON.parse()函数,可以把JSON格式转为JS数据格式​ 

把JS数据转换为JSON数据

 序列化和反序列化

 把 XMLHttpRequest 请求到的 JSON 数据反序列化为 JS 对象

 JSON文件

JSON文件的语法要求

 


拦截器就是用来全局拦截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的值

 

举报

相关推荐

0 条评论