Vue中Axios网络请求封装-企业最常用封装模式

简介: 本教程介绍如何安装并配置 Axios 实例,包含请求与响应拦截器,实现自动携带 Token、错误提示及登录状态管理,适用于 Vue 项目。

1.通过命令安装axios

yarn add axios
&
npm install axios --save

2.创建一个js文件

// utils/request.js
import axios from 'axios'
import {
    MessageBox, Message } from 'element-ui' // 引入element-ui库
import store from '@/store'    // vuex

// 创建一个axios实例
const service = axios.create({
   
  baseURL: process.env.VUE_APP_BASE_API, // url = base url + request url
  // withCredentials: true, // 当跨域请求时发送cookie
  timeout: 5000 // 请求超时
})

// 请求拦截器
service.interceptors.request.use(
  config => {
   
    // 在发送请求之前做些什么

    if (store.getters.token) {
   
      // 让每个请求携带令牌
      config.headers['Token'] = store.getters.token
    }
    return config
  },
  error => {
   
    // 处理请求错误
    console.log(error)
    return Promise.reject(error)
  }
)

// 响应拦截器
service.interceptors.response.use(
  response => {
   
    const res = response.data

    // 如果定制代码不是0,则判定为错误。
    if (res.code !== 0) {
   
      Message({
   
        message: res.message || 'Error',
        type: 'error',
        duration: 5 * 1000
      })

      // 50008:非法令牌;50012:其他客户端登录;50014:令牌过期;
      if (res.code === 50008 || res.code === 50012 || res.code === 50014) {
   
        // 重新登陆
        MessageBox.confirm('您已注销,您可以取消停留在此页面或重新登录', '确认注销', {
   
          confirmButtonText: '重新登录',
          cancelButtonText: '取消',
          type: 'warning'
        }).then(() => {
   
          // 移除vue存储的token信息
          store.dispatch('user/resetToken').then(() => {
   
            location.reload()
          })
        })
      }
      return Promise.reject(new Error(res.message || 'Error'))
    } else {
   
      // return res.data
      return res
    }
  },
  error => {
   
    console.log('err' + error)
    Message({
   
      message: error.message,
      type: 'error',
      duration: 5 * 1000
    })
    return Promise.reject(error)
  }
)

export default service
目录
相关文章
|
机器学习/深度学习 存储 监控
内部文件审计:企业文件服务器审计对网络安全提升有哪些帮助?
企业文件服务器审计是保障信息安全、确保合规的关键措施。DataSecurity Plus 是由卓豪ManageEngine推出的审计工具,提供全面的文件访问监控、实时异常告警、用户行为分析及合规报告生成功能,助力企业防范数据泄露风险,满足GDPR、等保等多项合规要求,为企业的稳健发展保驾护航。
374 0
|
供应链 安全 网络协议
|
人工智能 Kubernetes 安全
生成式AI时代,网络安全公司F5如何重构企业防护体系?
生成式AI时代,网络安全公司F5如何重构企业防护体系?
458 9
|
运维 安全 网络性能优化
工业路由器:企业网络的中流砥柱和个人路由器有什么区别?卓伊凡
工业路由器:企业网络的中流砥柱和个人路由器有什么区别?卓伊凡
1153 11
工业路由器:企业网络的中流砥柱和个人路由器有什么区别?卓伊凡
|
安全 架构师 云计算
玄鹿网络 | 中小企业如何借势互联网,打造强势网络品牌?
玄鹿网络在互联网+时代,中小企业面临机遇与挑战,品牌成为企业生存发展的核心灵魂。玄鹿网络通过网络营销助力中小企业塑造品牌形象,其中问答营销可树立良好口碑,B2B网站推广能获取高质量流量,建立企业官网则是展示品牌的窗口。阿里云建站产品如【云·速成美站】和【云·企业官网】,提供快速、稳定、安全的建站服务,助力企业打造独特网络名片,在竞争中脱颖而出。
511 12
玄鹿网络 | 中小企业如何借势互联网,打造强势网络品牌?
|
监控 算法 JavaScript
企业用网络监控软件中的 Node.js 深度优先搜索算法剖析
在数字化办公盛行的当下,企业对网络监控的需求呈显著增长态势。企业级网络监控软件作为维护网络安全、提高办公效率的关键工具,其重要性不言而喻。此类软件需要高效处理复杂的网络拓扑结构与海量网络数据,而算法与数据结构则构成了其核心支撑。本文将深入剖析深度优先搜索(DFS)算法在企业级网络监控软件中的应用,并通过 Node.js 代码示例进行详细阐释。
311 2
|
运维 安全 网络安全
企业级通配符 SSL 证书:企业网络安全的坚实护盾
企业级通配符SSL证书是企业的网络“身份证”,一个证书即可保护主域名及所有子域名,简化管理流程。它采用先进加密算法,确保数据传输安全,防止黑客攻击。拥有此证书可提升网站信任度,增强品牌形象,吸引更多客户。同时,它灵活适配业务变化,降低成本,为企业数字化发展提供有力支持。
|
人工智能 运维 监控
领先AI企业经验谈:探究AI分布式推理网络架构实践
当前,AI行业正处于快速发展的关键时期。继DeepSeek大放异彩之后,又一款备受瞩目的AI智能体产品Manus横空出世。Manus具备独立思考、规划和执行复杂任务的能力,其多智能体架构能够自主调用工具。在GAIA基准测试中,Manus的性能超越了OpenAI同层次的大模型,展现出卓越的技术实力。
|
监控 安全 Cloud Native
企业网络架构安全持续增强框架
企业网络架构安全评估与防护体系构建需采用分层防御、动态适应、主动治理的方法。通过系统化的实施框架,涵盖分层安全架构(核心、基础、边界、终端、治理层)和动态安全能力集成(持续监控、自动化响应、自适应防护)。关键步骤包括系统性风险评估、零信任网络重构、纵深防御技术选型及云原生安全集成。最终形成韧性安全架构,实现从被动防御到主动免疫的转变,确保安全投入与业务创新的平衡。
1178 2