解决前端本地测试OK,打包部署到生产环境, 逻辑不更新的问题

最近有一个实现单点登录的需求,具体流程是:

1. 主平台登录,获取到登录子平台的ticket

2. 携带ticket登录子平台, 获取权限进入子平台

问题的产生跟具体需求没有直接关系,在与后台对接过程中,由post改为get请求,请求头中的content-type也做了修改,修改后本地调试是OK的,但是打包部署到生产环境,诡异的事情发生了:虽然我已经改为get,请求参数也从body改为后台需要的content-type,但是生产环境的后台接收到的依然是post, body参数。

束手无策的情况下,请教前端大佬朋友,他问我试过修改函数名没有,于是我在调用接口的函数名加了一个1,然后打包到生产环境……奇迹出现了!问题解决!

推测此问题的原因为部署前端包覆盖原来的包, 但是因为函数名相同,所以生产环境的逻辑并没有更新,这可真是个天坑啊!

以下是修改后的代码,只不过在‘ssoLogin’加了一个‘1’而已……

  methods: {
    ...mapActions(['Login', 'Logout']),

    ssoLogin1() {
      const {
        form: { validateFields },
        Login
      } = this
      Login(this.ticket)
        .then((res) => {
          // console.log('登录信息', res)
          this.loginSuccess(res)
        })
        .catch((err) => {
          console.log('login err', err)
          this.$message.error('跳转失败, 请重试')
        })
    },
    loginSuccess(res) {
      // console.info('登陆成功', res)
      this.$router.push({ path: '/oversystem/radar' })
      // 延迟 1 秒显示欢迎信息
      setTimeout(() => {
        this.$notification.success({
          message: '欢迎',
          description: `${timeFix()},欢迎回来`
        })
      }, 1000)
    },
  }

虽然只是一个小技巧,没有足够的开发经验,踩过的天坑,是根本想不到的,感叹经验的重要性!

猜你喜欢

转载自blog.csdn.net/hero8011/article/details/134825922