🌞个人信条:想要变成得到,中间还有做到!
【前言】ajax是一种在javaScript代码中发请求并获取响应数据的技术,我们的axios是一个别人封装好的、用来发ajax请求的工具。那么我们发送请求与响应数据可以用来做什么呢?这样做有什么好处呢?可以实现——当我们不刷新页面的情况下,我们从服务器获取请求的数据,以局部更新我们定点的数据而不是我们整个页面的刷新。
一、axios
1.1axios的请求方式
1.get
2.post
3.put
4.patch
5.delete
1.2请求方式的传参特点
1.3【经典面试题】get与post请求的区别
1.位置不同。我们的get是写在请求行中,post则是写在请求体中。也就是一个可以在地址栏可以看到我们的信息(get),一个需要按下F12在调试里面看我们传递的信息
2.速度不同。使用get因为有大小限制的原因,因此数据传输的速度长比post请求快
3.大小不同。get写在地址栏上面,因此有长度的限制,最大长度为2k左右,而我们的post写在请求体中没有大小的限制
4.安全性不同。get的参数可以直接看到,post参数需要按下F12来查看
二、axios拦截器
2.1axios拦截器介绍
【授人以鱼不如授人以渔】我们通过官网出的文件来进行一个讲解:
官网指南:拦截器 | Axios 中文文档 | Axios 中文网 (axios-http.cn)
我们将上述代码copy下来(这一大段代码不需要背下来,到了工作当中也是直接去axios官方中直接copy下来我们进行应用即可呦)
1.便于封装操作,我们常会建立一个专门的文件来写下我们的拦截器同基地址作为第一次封装。
【vue2小知识】实现axios的二次封装_初映CY的前说的博客
// 添加请求拦截器
axios.interceptors.request.use(
function (config) {
// 在发送请求之前做些什么
return config
},
function (error) {
// 对请求错误做些什么
return Promise.reject(error)
}
)
// 添加响应拦截器
axios.interceptors.response.use(
function (response) {
// 2xx 范围内的状态码都会触发该函数。
// 对响应数据做点什么
return response
},
function (error) {
// 超出 2xx 范围的状态码都会触发该函数。
// 对响应错误做点什么
return Promise.reject(error)
}
)
我们将官网的这段代码获取下来了,兄弟姐妹们有没有发现官方甚至连注释都给我们写好了,很清晰明了的介绍了axios拦截器的用法,可知:
2.2axios拦截器使用
至此我们知道了axiox的基本概念,那怎么在vue项目中引用?使用npm i axios 或者这 yarn add axios 将我们的axios下载下来(使用指南:npm的使用介绍)
import axios from 'axios'
const request = axios.create({
baseURL: 'http://ajax-api.itheima.net/api',
timeout: 5000 // 超过5s请求停止
})
export default request
import request from '@/utils/request'
export function homeAddress (pname, cname) {
return request({
url: '/area',
method: 'GET',
params: {
pname: pname,
cname: cname
}
})
}
<template>
<div class="div1">
<button @click="getHomeAddress('江西省', '九江市')">点我获取地址</button>
</div>
</template>
<script>
import { homeAddress } from './api/address'
export default {
methods: {
async getHomeAddress (pname, cname) {
console.log(pname, cname)
const res = await homeAddress(pname, cname)
console.log('地址数据为:', res)
}
}
}
</script>
<style lang="less">
.div1 {
background-color: teal;
button {
height: 50px;
display: block;
margin: 30px auto;
}
}
</style>
7.1请求拦截器
在发送请求之前会执行的一个回调,常用于将token添加进请求头的Authorization中。
// 添加请求拦截器
request.interceptors.request.use(
function (config) {
// 在发送请求之前做些什么
console.log(config, 'config')
console.log('嘿!我是在请求之前就执行的')
return config // 发给服务器的信息
},
function (error) {
// 对请求错误做些什么
return Promise.reject(error)
}
)
7.2响应拦截器
从服务器获取到了数据返回的时候先执行一个回调函数,常用于做状态码判断与脱壳处理
// 添加响应拦截器
request.interceptors.response.use(
function (response) {
// 2xx 范围内的状态码都会触发该函数。
// 对响应数据做点什么
console.log(response, 'response')
console.log('嘿!我是在请求之后就执行的,response为我们请求相应的结果')
return response.data.data
},
function (error) {
// 超出 2xx 范围的状态码都会触发该函数。
// 对响应错误做点什么
return Promise.reject(error)
}
)
2.3总结axios拦截器
——期待大家的关注与支持! 你的肯定是我更新的最大动力——
原文地址:https://blog.csdn.net/m0_61118311/article/details/129516486
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_50000.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!