找回密码
 立即注册
查看: 6|回复: 0

25,Axios请求拦截器

[复制链接]

273

主题

6

精华

277

金币

技术维护QQ:515138

积分
595
发表于 昨天 11:38 | 显示全部楼层 |阅读模式
1.jpg 2.jpg
request.js
//定制请求的实例
//导入axios  npm install axios
import axios from 'axios';
import { ElMessage } from 'element-plus'
//定义一个变量,记录公共的前缀  ,  baseURL
// const baseURL = 'http://localhost:8080';
const baseURL = '/api';
const instance = axios.create({baseURL})

import {useTokenStore} from '@/stores/token.js'
//添加请求拦截器
instance.interceptors.request.use(
    (config)=>{
        //请求前的回调
        //添加token
        const tokenStore = useTokenStore();
        //判断有没有token
        if(tokenStore.token){
            config.headers.Authorization = tokenStore.token
        }
        return config;
    },
    (err)=>{
        //请求错误的回调
        Promise.reject(err)
    }
)
//添加响应拦截器
instance.interceptors.response.use(
    result=>{
         //判断业务状态码
        if(result.data.code===0){
            return result.data;
        }
        //操作失败
        // alert(result.data.msg?result.data.msg:'服务异常')
        ElMessage.error(result.data.msg?result.data.msg:'服务异常')
        //异步操作的状态转换为失败
        return Promise.reject(result.data)
    },
    err=>{
        alert('服务异常');
        return Promise.reject(err);//异步的状态转化成失败的状态
    }
)

export default instance;



article.js
import request from '@/utils/request.js'
// import { useTokenStore } from '@/stores/token.js'
//文章分类列表查询
export const articleCategoryListService = ()=>{
   // const tokenStore = useTokenStore();
    //在pinia中定义的响应式数据,都不需要.value
   // return request.get('/category',{headers:{'Authorization':tokenStore.token}})
     return request.get('/category')
}



3.jpg


上一篇:24,Pinia状态管理库
下一篇:26,Pinia持久化插件-persist
网站建设,公众号小程序开发,系统定制,软件App开发,技术维护【联系我们】手机/微信:17817817816 QQ:515138

QQ|Archiver|自丢网 ( 粤ICP备2024252464号-1 )

GMT+8, 2026-3-7 14:02

专注于网站建设,公众号小程序制作,商城小程序,系统定制,软件App开发

【联系我们】手机/微信:17817817816 QQ:515138

快速回复 返回顶部 返回列表