【vue】axios封装拦截

文章目录


1、安装axios

typescript 复制代码
npm install axios

2、新建文件

  • 项目 src 目录创建 util 文件夹
  • util 文件夹下创建文件 axios.config.js
  • 代码如下
typescript 复制代码
import axios from "axios";
// 请求拦截
axios.interceptors.request.use(function (config) {
    const token = localStorage.getItem("token")
    config.headers.Authorization = `Bearer ${token}`
    return config;
}, function (error) {
    return Promise.reject(error);
});
typescript 复制代码
// 响应拦截
axios.interceptors.response.use(function (response) {
    const { authorization } = response.headers
    authorization && localStorage.setItem("token", authorization)
    return response;
}, function (error) {
 	const { status, data } = error.response
    if (status === 401) {
        localStorage.removeItem("token")
        location.reload()
    } else {
        ElMessage.error(data.msg || "系统出错")
    }
    return Promise.reject(error);
});

3、引入文件

  • mian.js 中引入
typescript 复制代码
import "./util/axios.config"

4、使用

html 复制代码
<template>
  <div>帆帆帆帆帆帆帆帆帆帆帆帆帆帆</div>
</template>
typescript 复制代码
<script setup lang="ts">
import axios from 'axios';
axios.get("/api/user/home").then((res) => {
  console.log(res)
})
</script>
相关推荐
码途潇潇19 分钟前
JavaScript有哪些数据类型?如何判断一个变量的数据类型?
前端·javascript
满天星辰21 分钟前
Vue真的是单向数据流?
前端·vue.js
细心细心再细心22 分钟前
Nice-modal-react的使用
前端
我的写法有点潮1 小时前
JS中对象是怎么运算的呢
前端·javascript·面试
悠哉摸鱼大王1 小时前
NV12 转 RGB 完整指南
前端·javascript
一壶纱1 小时前
UniApp + Pinia 数据持久化
前端·数据库·uni-app
双向331 小时前
【RAG+LLM实战指南】如何用检索增强生成破解AI幻觉难题?
前端
海云前端11 小时前
前端人必懂的浏览器指纹:不止是技术,更是求职加分项
前端
青莲8431 小时前
Java内存模型(JMM)与JVM内存区域完整详解
android·前端·面试
boooooooom1 小时前
深入浅出 Vue3 defineModel:极简实现组件双向绑定
vue.js