vue3+vite+js axios引用

embedded/2025/1/15 20:33:43/

先交代下基础版本:
“node”:“V16.14.1” “vue”: “^3.4.21” “vite”: “^5.2.0”

  1. 安装:npm install axios --save
  2. 在src目录下的utils文件夹创建一个request.js文件(示例代码,仅供参考):
//引入axios请求
import axios from 'axios'
// store
import useUserStore from '@/store/modules/userStore.js'
const store = useUserStore()
const BASE_API=import.meta.env.VITE_APP_BASE_API
// 创建axios实例
const service = axios.create({baseURL: BASE_API, //所有的后端接口请求地址前缀部分(没有后端请求不用写)timeout: 15000 // 请求超时时间,这里15秒//withCredentials: true,// 异步请求携带cookie,true为携带,false为不携带//请求头里面设置通用传参类型/*headers: {//设置后端需要的传参类型'Content-Type': 'application/json','token': 'x-auth-token',//一开始就要token'X-Requested-With': 'XMLHttpRequest',}*/
})// request拦截器
service.interceptors.request.use(config => {const value = JSON.parse(localStorage.getItem('token'));console.log(111, value.token)if (store.token) {config.headers['token'] = store.token // 让每个请求携带自定义token 请根据实际情况自行修改}return config
}, error => {console.log(error)return Promise.reject(error)
})// response拦截器
service.interceptors.response.use(response => {//对数据返回做什么const res = response.dataconst config = response.config// custom 表示自定义if (res.status_code !== 200 && !config.custom) {//   if (res.status_code === 1002) {//     loginOut()//   } else if (loginVerify(res, config)) { // 登录功能验证//     return res//   } else {// Message({//   message: res.status || 'Error',//   type: 'error',//   duration: 5 * 1000// })//   }return Promise.reject(new Error(res.status || 'Error'))} else {if (response.headers['authorization'] || response.headers['Authorization']) {const _token = response.headers['authorization'] || response.headers['Authorization']store.dispatch('user/setToken', _token.split('Bearer ')[1])}return res}},error => {console.log('err' + error) // for debug// Message({//   message: error.message,//   type: 'error',//   duration: 5 * 1000// })return Promise.reject(error)}
)
export default service
  1. src目录下创建一个api斜体样式文件夹,用来存放每个模块的接口请求,类如login.js
import request from '@/utils/request'//示例以application/json格式传参
export function login(data) {return request({url: '/admin/login',method: 'post',data: data})
}//示例在url后面拼接参数传参
export function test(params) {return request({url: '/admin/login',method: 'post',params: params})
}
  1. 使用,类如HelloWorld.vue:
<script setup>
import { login } from '@/api/login.js'
onMounted(() => {login({ phone: 18888888888 }).then(res => {console.log(res)}).catch(res => {console.log(res)})
})
</script>

http://www.ppmy.cn/embedded/32567.html

相关文章

分布式与一致性协议之一致哈希算法(二)

一致哈希算法 使用哈希算法有什么问题 通过哈希算法&#xff0c;每个key都可以寻址到对应的服务器&#xff0c;比如&#xff0c;查询key是key-01,计算公式为hash(key-01)%3,警告过计算寻址到了编号为1的服务器节点A&#xff0c;如图所示。 但如果服务器数量发生变化&#x…

软件ip地址怎么改到别的城市去

随着互联网的快速发展&#xff0c;越来越多的业务场景需要频繁地更换IP地址。比如&#xff0c;我们需要将软件IP地址改到别的城市&#xff0c;那么&#xff0c;对于刚接触这一领域的用户来说&#xff0c;可能不知道软件IP地址怎么改到别的城市&#xff0c;下面我们一起了解一下…

【实验】根据docker部署nginx并且实现https

环境准备 systemctl stop firewalld setenforce 0 安装docker #安装依赖包 yum -y install yum-utils device-mapper-persistent-data lvm2 #设置阿里云镜像 yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo #安装最新版…

OceanBase 分布式数据库【信创/国产化】- OceanBase 数据库代理概述

本心、输入输出、结果 文章目录 OceanBase 分布式数据库【信创/国产化】- OceanBase 数据库代理概述前言OceanBase 数据更新架构OceanBase 数据库代理概述为什么需要 ODP?ODP 特性OceanBase 分布式数据库【信创/国产化】- OceanBase 数据库代理概述 编辑 | 简简单单 Online zu…

深入浅出MySQL-06-【索引的设计和使用】

文章目录 前言1.索引概述2.设计索引的原则3.索引设计的误区4.索引设计的一般步骤5.BTREE索引和HASH索引6.索引在MySQL 8.0中的改进6.1.不可见索引6.2.倒序索引 7.总结 前言 环境&#xff1a; Windows11MySQL-8.0.35 1.索引概述 所有MySQL列类型都可以被索引&#xff0c;对相…

数据结构与算法-单向环形链表与约瑟夫问题(续思路与代码)

上一篇写的单向环形链表与约瑟夫问题简介和举例&#xff0c;这篇写思路和代码~ 目录 3.思路 3.1创建环形链表&#xff1a; 3.2遍历环形链表&#xff1a; 3.3产生出圈序号&#xff1a; 4.代码 4.1在构建环形链表时添加节点&#xff1a; 4.2遍历环形链表&#xff1a; 4.3产…

MongoDB分片集群搭建

MongoDB分片集群搭建 如果不清楚什么是分片集群&#xff0c;可以看我上一篇发布的文章MongoDB分片集群详解 环境信息 以下是我在测试环境中虚拟机的配置&#xff0c;如果你的虚拟机ip不同可以对应的更改&#xff0c;但是要确保这三台虚拟机之间可以ping通 #操作系统&#xf…

Python量化炒股的数据信息获取

Python量化炒股的数据信息获取 在炒股实战中&#xff0c;为了提高选股的质量&#xff0c;往往需要获取更多关注个股的数据信息&#xff0c;如个股的员工情况&#xff0c;管理人员任职情况&#xff0c;大股东信息&#xff0c;股份质押和冻结信息以及分红送股信息等。 获取上市…