如何在每个axios请求执行前都执行一些逻辑,每个axios请求前都弹框点了确定才去执行请求

我这么加的,不行,请求都不执行了

service.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
  }
}, error => {
  // Do something with request error
  console.log(error) // for debug
  Promise.reject(error)
})
阅读 3.4k
2 个回答

使用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)
})
service.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) {
    return 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
  }
}, error => {
  // Do something with request error
  console.log(error) // for debug
  Promise.reject(error)
})
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题