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

相关推荐
Simon_He2 小时前
一个渲染内核,五个框架包:我的流式 Markdown 渲染库是怎么长成“全家桶”的
前端·vue.js·markdown
夏雪coding2 小时前
JeecgBoot 动态路由踩坑(Vue2):刷新白屏、permissionList[0] 报 undefined,以及我最后为什么全删了
javascript·vue.js
前进的程序员3 小时前
Codex破局:前端组件秒级生成|提速React/Vue开发,可复用提示词+实战调试经验
前端·vue.js·react.js·codex
JunjunZ4 小时前
Vue 3 文件预览的通用设计与实现
前端·vue.js
无懈可击9 小时前
Vue 低代码可视化 AI 表单设计器 FcDesigner v3.5 版本发布!
前端·vue.js·前端框架
Web - Anonymous9 小时前
Vue3 + Element Plus 集成 JSON Editor 实现实时校验 JSON 编辑器(高亮/暗亮主题/分栏回显/组件复用) - 附完整示例
vue.js·编辑器·json
斯内普吖10 小时前
(开源)农产品电商系统实战指南 基于 Java + SpringBoot + Vue + MySQL
java·vue.js·spring boot·mysql·开源
daols8810 小时前
vue 甘特图 vxe-gantt 紧前紧后依赖关系连接线配置详解
前端·vue.js·甘特图
剑胆琴心静水深流1 天前
全栈之路6---web集成与呈现
前端·vue.js·spring boot·分布式·spring·前端框架·npm
Y001112361 天前
springboot+vue项目实战
vue.js·spring boot·后端