Bladeren bron

feat(请求): 添加APP_NAME请求头并统一请求配置

在config.js中添加APP_NAME常量,并在request.js和requestPay.js的请求拦截器中添加app请求头
统一了axios实例的配置格式,包括逗号结尾和箭头函数括号
wanggao 1 maand geleden
bovenliggende
commit
e116b3fced
3 gewijzigde bestanden met toevoegingen van 62 en 56 verwijderingen
  1. 17 14
      src/utils/config.js
  2. 36 34
      src/utils/request.js
  3. 9 8
      src/utils/requestPay.js

+ 17 - 14
src/utils/config.js

@@ -1,43 +1,46 @@
 // 判断当前环境
-const isDev = process.env.NODE_ENV === "development";
+const isDev = process.env.NODE_ENV === 'development'
 
 // API基础URL配置
 export const API_BASE_URL = isDev
-  ? "https://gbyy91.asia/api"
-  : "https://mylive91.com/api"; // 生产环境
+  ? 'https://gbyy91.asia/api'
+  : 'https://mylive91.com/api' // 生产环境
+
+// App名称配置请求头
+export const APP_NAME = 'MewLive'
 
 // 支付方式切换参数 ('wechat' | 'alipay')
-export const PAYMENT_TYPE = "wechat";
+export const PAYMENT_TYPE = 'wechat'
 
 // 支付宝支付自定义金额模块开关
-export const ALI_CUSTOM = false;
+export const ALI_CUSTOM = false
 
 // 支付方式ID
 export const PAY_WAY_ID = {
   ANDROID: 10,
   IOS: 21,
-};
+}
 
 // 检测设备类型
 export function getDevicePayWayId() {
-  const ua = navigator.userAgent.toLowerCase();
+  const ua = navigator.userAgent.toLowerCase()
   if (/iphone|ipad|ipod|ios/.test(ua)) {
-    return PAY_WAY_ID.IOS;
+    return PAY_WAY_ID.IOS
   }
   // 默认返回安卓支付方式
-  return PAY_WAY_ID.ANDROID;
+  return PAY_WAY_ID.ANDROID
 }
 
 // 获取平台类型
 export function getPlatformType() {
-  const ua = navigator.userAgent.toLowerCase();
+  const ua = navigator.userAgent.toLowerCase()
   if (/iphone|ipad|ipod|ios/.test(ua)) {
-    return "ios";
+    return 'ios'
   } else if (/android/.test(ua)) {
-    return "android";
+    return 'android'
   }
   // 默认返回web平台
-  return "web";
+  return 'web'
 }
 
 // 其他全局配置可以在这里添加
@@ -47,4 +50,4 @@ export default {
   PAY_WAY_ID,
   getDevicePayWayId,
   getPlatformType,
-};
+}

+ 36 - 34
src/utils/request.js

@@ -1,79 +1,81 @@
-import axios from "axios";
-import { Toast, Dialog } from "vant";
-import { API_BASE_URL } from "./config";
+import axios from 'axios'
+import { Toast, Dialog } from 'vant'
+import { API_BASE_URL, APP_NAME } from './config'
 
 // 创建axios实例
 const service = axios.create({
   baseURL: API_BASE_URL, // 从配置文件获取基础URL
   timeout: 10000, // 请求超时时间
-});
+})
 
 // 请求拦截器
 service.interceptors.request.use(
   (config) => {
     // 在发送请求之前可以做一些处理
     // 从localStorage获取token和userId
-    const token = localStorage.getItem("token");
-    const userId = localStorage.getItem("userId");
+    const token = localStorage.getItem('token')
+    const userId = localStorage.getItem('userId')
 
     // 如果存在token,添加到请求头
     if (token) {
-      config.headers["Authorization"] = token; // `Bearer ${token}`
-      config.headers["token"] = token;
+      config.headers['Authorization'] = token // `Bearer ${token}`
+      config.headers['token'] = token
     }
 
     // 如果存在userId,添加到请求头
     if (userId) {
-      config.headers["userId"] = userId;
+      config.headers['userId'] = userId
     }
 
-    return config;
+    config.headers['appName'] = APP_NAME
+
+    return config
   },
   (error) => {
     // 处理请求错误
-    console.log(error);
-    return Promise.reject(error);
+    console.log(error)
+    return Promise.reject(error)
   }
-);
+)
 
 // 响应拦截器
 service.interceptors.response.use(
   (response) => {
-    console.log(response);
-    const res = response.data;
+    console.log(response)
+    const res = response.data
     // 根据后端约定的状态码判断请求是否成功
     if (res.code == 109) {
-      Toast.fail("登录令牌失效");
-      console.log("登录失效", res.message);
+      Toast.fail('登录令牌失效')
+      console.log('登录失效', res.message)
       // 清除localStorage中的用户信息
-      localStorage.removeItem('userId');
-      localStorage.removeItem('userName');
-      localStorage.removeItem('avatar');
-      localStorage.removeItem('token');
-      localStorage.removeItem('integral');
-      localStorage.removeItem('canExchange');
+      localStorage.removeItem('userId')
+      localStorage.removeItem('userName')
+      localStorage.removeItem('avatar')
+      localStorage.removeItem('token')
+      localStorage.removeItem('integral')
+      localStorage.removeItem('canExchange')
       // 跳转到搜索页
       window.location.href = '/'
     } else if (res.code == 1100) {
-      Dialog.alert({ message: res.message });
-      console.log("弹窗提示", res.message);
+      Dialog.alert({ message: res.message })
+      console.log('弹窗提示', res.message)
     } else if (res.code == 1000) {
-      Toast.fail(res.message);
-      console.log("普通提示", res.message);
+      Toast.fail(res.message)
+      console.log('普通提示', res.message)
     } else if (res.code !== 200) {
       //Toast.fail(res.message || '请求失败')
       // return Promise.reject(new Error(res.message || '请求失败'))
-      return res;
+      return res
     } else {
-      return res;
+      return res
     }
     // return res
   },
   (error) => {
-    console.log("请求错误:", error);
-    Toast.fail("网络异常,请稍后重试");
-    return Promise.reject(error);
+    console.log('请求错误:', error)
+    Toast.fail('网络异常,请稍后重试')
+    return Promise.reject(error)
   }
-);
+)
 
-export default service;
+export default service

+ 9 - 8
src/utils/requestPay.js

@@ -1,20 +1,21 @@
 import axios from 'axios'
 import { Toast } from 'vant'
-import { API_BASE_URL } from './config'
+import { API_BASE_URL, APP_NAME } from './config'
 
 // 创建axios实例
 const service = axios.create({
   baseURL: API_BASE_URL, // 从配置文件获取基础URL
-  timeout: 50000 // 请求超时时间
+  timeout: 50000, // 请求超时时间
 })
 
 // 请求拦截器
 service.interceptors.request.use(
-  config => {
+  (config) => {
     // 在发送请求之前可以做一些处理
+    config.headers['appName'] = APP_NAME
     return config
   },
-  error => {
+  (error) => {
     // 处理请求错误
     console.log(error)
     return Promise.reject(error)
@@ -23,14 +24,14 @@ service.interceptors.request.use(
 
 // 响应拦截器
 service.interceptors.response.use(
-  response => {
-     return  response
+  (response) => {
+    return response
   },
-  error => {
+  (error) => {
     console.log('请求错误:', error)
     Toast.fail('网络异常,请稍后重试')
     return Promise.reject(error)
   }
 )
 
-export default service 
+export default service