news 2026/5/26 7:50:36

记录vue动态切换访问后台服务

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
记录vue动态切换访问后台服务

1.在public文件夹内的配置文件配置服务ip

const VUE_APP_URL = 'http://127.0.0.1:2222' // 在线服务器地址 const VUE_APP_URL2 = 'http://127.0.0.1:1111' // 离线本地地址 const IS_FLAG = "true" // 是否启用在线离线切换 const IS_STATUS = "onLine" // 初始化时在线-onLine/offLine

2.修改request.ts,进行判断

import Axios, { AxiosResponse } from 'axios'; import { ElMessage, ElLoading } from 'element-plus'; import router from '../router' // 全局变量声明(保持不变) declare const VUE_APP_URL: any; // 兼容字符串/对象 declare const VUE_APP_URL2: any; declare const IS_FLAG: any; declare const IS_STATUS: any; const sevice = Axios.create({ timeout: 300000, // 移除静态baseURL,改为拦截器动态设置 }); let loadingInstance: any let loadSign = true // const router = useRouter(); sevice.interceptors.request.use(config => { // ========== 核心:根据IS_STATUS动态设置baseURL ========== // 1. 读取/初始化IS_STATUS(优先localStorage,无则用全局变量) let baseURL = VUE_APP_URL if (IS_FLAG == "true") { const storageIsStatus = localStorage.getItem('IS_STATUS'); const storageIsFlag = localStorage.getItem('IS_FLAG'); if (storageIsStatus && storageIsFlag) { if (storageIsFlag == "true" && storageIsStatus == "offLine") { baseURL = VUE_APP_URL2 } } else { // 初始化localStorage localStorage.setItem('IS_STATUS', String(IS_STATUS)); localStorage.setItem('IS_FLAG', String(IS_FLAG)); if (String(IS_FLAG) == "true" && String(IS_STATUS) == "offLine") { baseURL = VUE_APP_URL2 } } }else{ localStorage.removeItem('IS_STATUS') localStorage.setItem('IS_FLAG', String(IS_FLAG)); } config.baseURL = baseURL if (sessionStorage.getItem('Authorization')) { config.headers['Authorization'] = sessionStorage.getItem('Authorization'); } loadSign = sessionStorage.getItem('loadSign') ? JSON.parse(sessionStorage.getItem('loadSign') || 'true') : false if (loadSign) { loadingInstance = ElLoading.service({ // 加载loading fullscreen: true, text: 'Loading', spinner: 'el-icon-loading', background: 'rgba(0, 0, 0, 0)' }) } return config; }, error => { if (loadSign) { loadingInstance.close() } // error回调信息弹窗 ElMessage({ showClose: true, message: error && error.data.error.message, type: 'error' }) return Promise.reject(error) }); sevice.interceptors.response.use(response => { if (response.data.code === 200) { // ElMessage.success(response.data.message) } else { if (response.data.code !== 401) { ElMessage.error(response.data.message) } } if (loadSign) { loadingInstance.close() } return response; }, error => { if (loadSign) { loadingInstance.close() } const err = error.response.data.message console.log(error.response.data) if (error.response.data.code !== 401) { ElMessage.error({ message: err, //error.message, type: 'error', duration: 3 * 1000 }) } if (error.response.data.code === 401) { router.push({ path: '/' }) sessionStorage.setItem('loadSign', 'false') sessionStorage.clear() // localStorage.clear() } if (error.response.data.code === 403) { router.push({ path: '/401' }) } return Promise.reject(error) }); export default sevice;

3.添加心跳测试

import request from './../../request' export function testHeart() { return request({ url: '/system/dataSynchronization/heart', method: 'post' }); }

4.在界面添加切换按钮测试

<template> <div> <el-button @click="toChangeDataSource">切换</el-button> </div> </template> <script lang="ts"> import { testHeart } from '@/server/api/testHeart'; export default defineComponent({ const toChangeDataSource = async () => { if (localStorage.getItem('IS_FLAG') == "true") { if (localStorage.getItem('IS_STATUS') == "offLine") { localStorage.setItem('IS_STATUS', "onLine"); } else { localStorage.setItem('IS_STATUS', "offLine"); } let res = await testHeart(); } } return { toChangeDataSource } }); </script>

5.浏览器F12查看是否成功动态切换服务请求

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/26 4:20:56

MATLAB高质量图像导出完整指南:从新手到专家的快速进阶

MATLAB高质量图像导出完整指南&#xff1a;从新手到专家的快速进阶 【免费下载链接】export_fig A MATLAB toolbox for exporting publication quality figures 项目地址: https://gitcode.com/gh_mirrors/ex/export_fig 还在为MATLAB图像导出效果不佳而困扰吗&#xff…

作者头像 李华
网站建设 2026/5/25 12:58:07

Groove音乐播放器:重新定义你的数字音乐生活体验

Groove音乐播放器&#xff1a;重新定义你的数字音乐生活体验 【免费下载链接】Groove 项目地址: https://gitcode.com/gh_mirrors/gr/Groove 在数字音乐时代&#xff0c;寻找一款既能满足专业需求又具备优雅界面的播放器并非易事。Groove音乐播放器以其独特的架构设计和…

作者头像 李华
网站建设 2026/5/26 4:17:36

高级排产系统如何提升汽车零部件生产效率?

在当今高度复杂且动态变化的制造业环境中&#xff0c;汽车零部件企业正面临着前所未有的挑战。随着订单多样化、交期缩短以及全球供应链的不确定性加剧&#xff0c;传统的生产计划方式已经难以满足现代制造业的需求。过去&#xff0c;许多企业依赖经验判断或基于无限产能假定的…

作者头像 李华
网站建设 2026/5/25 16:38:45

PHP 8.3.0 Windows终极下载指南:快速上手指南

PHP 8.3.0 Windows终极下载指南&#xff1a;快速上手指南 【免费下载链接】PHP8.3.0Windows64位版本下载 PHP 8.3.0 Windows 64位版本下载 项目地址: https://gitcode.com/open-source-toolkit/2d0fb 欢迎来到PHP 8.3.0 Windows版本的完整下载指南&#xff01;无论您是P…

作者头像 李华
网站建设 2026/5/25 12:00:41

基于SpringBoot框架的兼职平台的设计与实现

兼职平台的设计与实现背景随着互联网技术的快速发展和移动设备的普及&#xff0c;兼职市场逐渐从传统的线下中介模式转向线上平台化运营。这种转变不仅提高了信息传递的效率&#xff0c;还降低了求职者与雇主之间的沟通成本。然而&#xff0c;现有的兼职平台仍存在信息不对称、…

作者头像 李华