You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Vue.js项目多文件/函数中捕获Axios请求方案咨询

我来帮你把这套Vue.js项目里的HTTP请求相关代码整理成清晰易读的Markdown格式,方便你后续维护和参考:

1. 基础Axios实例封装(Api.js)

这个文件的核心是创建一个带JWT授权头的Axios实例,让所有接口请求都能自动带上用户token,不用在每个接口里重复写授权逻辑:

// Api.js - 创建带JWT授权的基础Axios实例
import axios from 'axios';
import store from '@/store'; // 请根据你的项目实际路径引入Vuex Store

export default () => {
  return axios.create({
    baseURL: apiURL, // 这里替换成你的后端接口基础地址
    headers: {
      Authorization: `JWT ${store.state.token}`
    }
  })
}
2. 接口服务封装(service.js)

这里把具体的业务接口封装成独立函数,组件调用时只需要调用对应函数即可,不用关心底层的请求细节:

// service.js - 封装各业务接口请求函数
import Api from './Api'; // 引入上面的基础Axios实例

export default {
  // 获取系统状态接口
  status() {
    return Api().get('status/')
  },

  // 你可以在这里扩展更多接口,比如:
  // getUserProfile() {
  //   return Api().get('user/profile/')
  // },
  // updateUserInfo(data) {
  //   return Api().post('user/update/', data)
  // }
}
3. Vue组件中调用接口(.vue文件)

在组件的created钩子中调用封装好的接口,处理成功响应和错误情况:

<!-- 示例Vue组件 -->
<template>
  <div class="example-component">
    <!-- 这里放你的组件UI内容 -->
  </div>
</template>

<script>
import Service from './service'; // 引入封装的接口服务

export default {
  name: 'ExampleComponent',
  data() {
    return {
      systemStatus: null // 用来存储接口返回的状态数据
    }
  },
  created() {
    // 组件创建完成后立即请求状态接口
    Service.status()
      .then(response => {
        // 处理接口返回的成功数据
        this.systemStatus = response.data;
        console.log('系统状态获取成功:', response.data);
      })
      .catch(error => {
        // 处理请求失败的情况
        console.error('系统状态请求失败:', error);
        // 这里可以添加用户友好的错误提示,比如弹出Toast
      })
  }
}
</script>

内容的提问来源于stack exchange,提问作者Developer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 08:18:54