Vue配置axios响应拦截器

一个项目会发送很多请求到后端,每个请求都有如下的响应

不想每个请求都去判断里面的status,那么可以使用axios的响应拦截器,对服务端返回的一些相同点做统一的处理 

比如说如果有报错,就统一弹出这么个错误信息

在src目录下新建utils目录里新建api.js(名字随你自己)

原先弹出错误信息,可以直接只用

this.$message.error('请输入正确格式')

但是现在是在js文件里,需要额外单独引入

 

 

 配置axios响应拦截器(其实也可以配置请求拦截器,就是在所有请求里添加什么什么什么,比如说统一添加请求头)

这里先介绍响应拦截器

import axios from 'axios'
import { Message } from 'element-ui';
import router from '../router'//导入文件夹,自动会去找里面的index.js
  

const instances = axios.create({
    baseURL: 'http://localhost',
  });

//响应拦截器
instances.interceptors.response.use(success=>{//这个success指的是调用接口成功
    
    console.log('响应拦截器,chenggong')
   
},error=>{//接口根本没有调用到或者服务器挂了,各种原因
   
    console.log('响应拦截器,shibai',error)
    Message.error({message:error})
});

// //可以在所有请求前添加前置路径
// let base='';

// //封装请求并导出
// export const postRequest=(url,params)=>{
//     return axios({
//         method:'post',
//         url:'${base}${url}',
//         data:params
//     })
// }

export default instances;

记得在main.js引入

引入的即为utils.api.js里导出的

下面第一张图用的是反引号,注意

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Vue 3中使用axios进行拦截器的封装方法如下: 首先,安装axios和@vue/composition-api依赖包: ``` npm install axios @vue/composition-api ``` 然后,在你的项目中创建一个axios.js文件,用于封装axios拦截器逻辑: ```javascript import axios from 'axios'; import { ref } from '@vue/composition-api'; const instance = axios.create({ baseURL: 'https://api.example.com' // 设置请求的基础URL }); // 创建一个ref类型的变量,用于存储当前正在进行的请求数量 const loadingCount = ref(0); // 请求拦截器 instance.interceptors.request.use( config => { // 在请求发送之前,对config进行一些处理,比如添加token等 loadingCount.value++; return config; }, error => { return Promise.reject(error); } ); // 响应拦截器 instance.interceptors.response.use( response => { // 在响应数据返回之前,对response进行一些处理,比如统一错误处理等 loadingCount.value--; return response; }, error => { loadingCount.value--; return Promise.reject(error); } ); export default instance; ``` 接下来,在你的组件中使用该封装好的axios实例: ```javascript import axios from '@/axios'; export default { setup() { // 发起一个请求示例 const fetchData = async () => { try { const response = await axios.get('/data'); console.log(response.data); } catch (error) { console.error(error); } }; return { fetchData }; } }; ``` 这样,你就成功在Vue 3中封装了axios拦截器。在请求发起前和响应返回后的拦截器中,你可以根据需要做一些通用的处理,比如添加认证信息、统一错误处理等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hrui0706

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值