axios二次封装
//对于axios进行二次封装,想用它的请求和响应拦截器 import axios from "axios"; //引入进度条 import nprogress from 'nprogress' //引入进度条样式, import "nprogress/nprogress.css" // 在当前模块中引入store import store from '@/store' //1:利用axios对象的方法create,去创建一个axios实例 //2:requeset就是axios,只不过稍微配置一下 const requests = axios.create({ //配置对象 // 基础路径,发请求时候,路径中会出现api baseURL: "/api", //代表请求超时的时间5s timeout: 5000, }); //请求拦截器:在发请求之前,请求拦截器可以检测到,可以在请求发出去之前做一些事情 requests.interceptors.request.use((config) => { //config:配置对象,对象里面有一个属性很重要,headers请求头 if (store.state.detail.uuid_token) { // 请求头添加一个字段(userTempId):和后台老师商量好了 config.headers.userTempId = store.state.detail.uuid_token } // 需要携带token给服务器 if (store.state.user.token) { config.headers.userTempId = store.state.user.token } nprogress.start(); return config; }); //响应拦截器 requests.interceptors.response.use((res) => { //成功的回调函数:服务器响应数据回来以后,响应拦截器可以检测到,可以做一些事情 nprogress.done(); return res.data; }, (error) => { //响应失败的回调函数 return Promise.reject(new Error('faile')); }) //对外暴露 export default requests;
在utils文件下编写token.js和uuid_token.js
utils/token.js
// 对外暴露一个函数 // 存储token export const setToken=(token)=>{ localStorage.setItem('TOKEN',token) } // 获取token export const getToken=()=>{ localStorage.getItem('TOKEN') } //清除token export const removeToken=()=>{ localStorage.removeItem('TOKEN') }
utils/uuid_token.js
import {v4 as uuidv4} from 'uuid' // 要生成一个随机字符串,且每次执行不能发生变化,游客身份持久存储,使用localStorage export const getUUID=()=>{ let uuid_token=localStorage.getItem('UUIDTOKEN') // 如果没有生成, if(!uuid_token){ uuid_token=uuidv4() localStorage.setItem('UUIDTOKEN',uuid_token) } return uuid_token }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本