多接口同时调用 propmise.all

搞一个平台,嵌入多个项目,登录接口处需要拿到所有项目的token,后端不想搞新接口,那前端来处理,登录页面同时调取多个平台的接口,使用promise.all来处理

javascript 复制代码
  if (valid) {
        // yiheng
        const yhData = {
          account: this.loginForm.username,
          password: this.loginForm.password,
        };
        let p1 = new Promise((resolve, reject) => {
          axios({
            method: "post",
            url: "/yh/auth/login",
            data: yhData,
          })
            .then((res) => {
              this.TokenSetting("YHToken", res.data.data.token);
              resolve(res);
            })
            .catch((e) => {
              reject("发生错误");
            });
        });
        // yifu
        const yfData = {
          username: this.loginForm.username,
          password: this.loginForm.password,
        };
        let p2 = new Promise((resolve, reject) => {
          axios({
            method: "post",
            url: "/api/v1.0/users/login",
            data: yfData,
          })
            .then((res) => {
              this.TokenSetting("YFToken", res.data.data.access_token);
              resolve(res);
            })
            .catch((e) => {
              reject("发生错误");
            });
        });
        Promise.all([p1, p2])
          .then((results) => {
            this.$router.push({
              path: "/applicationSoftware",
            });
          })
          .catch((e) => {
            this.$message.error(e);
          });
      } else {
        return false;
      }
    });
  }

  TokenSetting(TokenKey: string, TokenVal: string) {
    localStorage.setItem(TokenKey, TokenVal);
  }

涉及到跨域问题,在vue.config,js文件中配置

javascript 复制代码
 devServer: {
    // open: true, // 配置项目在启动时自动在浏览器打开
    proxy: {
        '/yh' : { // '/api'是代理标识,一般是每个接口前的相同部分
            target: "http://192.168.5.58:8002", // 请求地址,一般是服务器地址
            changeOrigin: true, // 是否进行跨域
            // pathRewrite: { // pathRewrite的作用是把请求接口中的 '/api'替换掉,一般是替换为空""
            //     '^/api':""
            // }
        },
        '/api':{
          target: "http://192.168.5.52:8021", // 请求地址,一般是服务器地址
          changeOrigin: true, // 是否进行跨域
        }
    },
  }

yh的请求路径是:http://192.168.5.58:8002/yh/auth/login

yf的请求路径是:http://192.168.5.52:8021/api/v1.0/users/login

相关推荐
Lkstar1 小时前
我把Vue2响应式源码从头到尾啃了一遍,这是整理笔记
vue.js
吴声子夜歌2 小时前
Vue3——新语法
前端·javascript·vue.js
jiayong232 小时前
第 36 课:任务详情抽屉快捷改状态
开发语言·前端·javascript·vue.js·学习
琢磨先生TT3 小时前
为什么很多后台系统功能不少,看起来却还是很廉价?
前端·vue.js·设计
一 乐4 小时前
交通感知与车路协同系统|基于springboot + vue交通感知与车路协同系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·论文·毕设·交通感知与车路协同系统
踩着两条虫6 小时前
强强联合!VTJ.PRO 正式接入 DeepSeek V4,AI 编码能力再跃升
前端·vue.js·ai编程
Beginner x_u6 小时前
前端八股整理(Vue 02)|组件通信、生命周期、v-if 与 v-show
前端·javascript·vue.js
万物得其道者成7 小时前
Vue3 使用 Notification 浏览器通知,解决页面关闭后旧通知点击无法跳转问题
前端·vue.js·edge浏览器
一條狗7 小时前
学习日报 20260423|[特殊字符] 深度解析:Vue 3 SPA 部署到 Spring Boot 的 404/500 错误排查与完美解决方案-2
vue.js·spring boot·学习
LIO8 小时前
Vue 3 实战——搜索框检索高亮的优雅实现
前端·vue.js