如何在每次axios请求执行前都弹一个对话框,点击确定才执行axios请求?

发布于 2022-09-07 22:44:58 字数 864 浏览 11 评论 0

我使用

axios.interceptors.request.use(config => {
    if (getToken()) {
        config.headers['token'] = getToken() // 让每个请求携带token-- ['X-Token']为自定义key 请根据实际情况自行修改
      } else {
        console.log('没有token')
      }
      const role = store.state.permission.roleList.find(role => role.url === config.url && role.confirmFlag === _const.YES)
      console.log(role)
      if (true) {
        MessageBox('是否使用第二人确认登录,账号密码已内置?', '提示', {
          confirmButtonText: '确定',
          cancelButtonText: '取消',
          type: 'warning'
        }).then(() => {
          config.headers['confirmUser'] = 'wcsconfirmuser'
          config.headers['confirmPwd'] = '123456'
          // Do something before request is sent
          return config
        })
      } else {
        return config
      }
})

这个样子请求都发不出去了

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

九公里浅绿 2022-09-14 22:44:58

使用Promise解决了

service.interceptors.request.use(config => {
  return new Promise((resolve) => {
    if (getToken()) {
      config.headers['token'] = getToken() // 让每个请求携带token-- ['X-Token']为自定义key 请根据实际情况自行修改
    } else {
      console.log('没有token')
    }
    const role = store.state.permission.roleList.find(role => role.url === config.url && role.confirmFlag === _const.YES)
    console.log(role)
    if (true) {
      MessageBox('是否使用第二人确认登录,账号密码已内置?', '提示', {
        confirmButtonText: '确定',
        cancelButtonText: '取消',
        type: 'warning'
      }).then(() => {
        config.headers['confirmUser'] = 'wcsconfirmuser'
        config.headers['confirmPwd'] = '123456'
        console.log(JSON.stringify(config.headers))
        // Do something before request is sent
        resolve(config)
      })
    } else {
      resolve(config)
    }
  })
}, error => {
  // Do something with request error
  console.log(error) // for debug
  Promise.reject(error)
})
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文