123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- import axios, { AxiosInstance, AxiosError, AxiosRequestConfig, AxiosResponse } from 'axios'
- import { ElMessage } from "element-plus";
- import { useUserStore } from "@/store/modules/user"
- // 创建axios实例 进行基本参数配置
- const service = axios.create({
- // 默认请求地址,根据环境的不同可在.env 文件中进行修改
- // baseURL: import.meta.env.VUE_APP_BASE_
- // 本地地址
- baseURL: "http://127.0.0.1:8001/api",
- // baseURL: "http://119.91.156.147:1007/api",
- // 华为云地址
- // baseURL: "http://119.3.32.162:666/api",
- // 测试服地址
- //baseURL: "http://129.204.254.216:888/api",
- // 好游快暴服地址
- //baseURL: "http://42.194.162.4:1001/api",
- // 设置接口访问超时时间
- timeout: 3000000, // request timeout,
- // 跨域时候允许携带凭证
- // withCredentials: true
- })
- // request interceptor 接口请求拦截
- service.interceptors.request.use((config: AxiosRequestConfig) => {
- /**
- * 用户登录之后获取服务端返回的token,后面每次请求都在请求头中带上token进行JWT校验
- * token 存储在本地储存中(storage)、vuex、pinia
- */
- const userStore = useUserStore();
- const token: string = userStore.token;
- // 自定义请求头
- if (token) { config.headers['Authorization'] = token }
- return config
- }, (error: AxiosError) => {
- // 请求错误,这里可以用全局提示框进行提示
- return Promise.reject(error);
- })
- // response interceptor 接口响应拦截
- service.interceptors.response.use((response: AxiosResponse) => {
- // 直接返回res,当然你也可以只返回res.data
- // 系统如果有自定义code也可以在这里处理
- return response
- }, (error: AxiosError) => {
- return Promise.reject(error)
- })
- /**
- * @description 显示错误消息
- * opt 传入参数
- * err 错误信息
- * type 消息类型
- * duration 消息持续时间
- */
- function showErrMessage(opt, err, type: any = 'error', duration: number = 5000) {
- ElMessage({
- message: err.msg,
- type: type,
- duration: duration
- })
- }
- export default service
|