多接口同时调用 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

相关推荐
A_nanda4 小时前
根据AI提示排查vue前端项目
前端·javascript·vue.js
前端Hardy8 小时前
别再手动写 loading 了!封装一个自动防重提交的 Hook
前端·javascript·vue.js
前端Hardy8 小时前
前端如何实现“无感刷新”Token?90% 的人都做错了
前端·javascript·vue.js
SuperEugene8 小时前
Vue Router 实战规范:path/name/meta 配置 + 动态 / 嵌套路由,统一团队标准|状态管理与路由规范篇
开发语言·前端·javascript·vue.js·前端框架
小彭努力中9 小时前
194.Vue3 + OpenLayers 实战:动态位置 + 高度 + 角度,模拟卫星地面覆盖范围
前端·css·vue.js·openlayers·animate
前端Hardy9 小时前
纯 HTML/CSS/JS 实现的高颜值登录页,还会眨眼睛!少女心爆棚!
前端·javascript·vue.js
miss9 小时前
Vue2 → Vue3 深度对比:8 大核心优化,性能提升 2 倍
前端·vue.js·架构
angerdream10 小时前
最新版vue3+TypeScript开发入门到实战教程之生命周期函数
javascript·vue.js
胖橘10 小时前
适用于Vue3的高集成度文件预览组件,支持多种类型的文件
前端·vue.js·开源
啊丫丫10 小时前
【深入浅出地学习Vue】——vue2
前端·vue.js