代码之家  ›  专栏  ›  技术社区  ›  Alfred Balle

VUE JS和AXIOS -重定向401

  •  4
  • Alfred Balle  · 技术社区  · 6 年前

    我在跑步 Vue.js axios 并尝试生成如下通用API对象:

    import router from './router'
    import auth from './auth'
    const axios = require('axios')
    
    export const API = axios.create({
      baseURL: `https://my-api.com/`,
      headers: {
        Authorization: auth.getToken()
      }
    })
    
    API.interceptors.response.use(null, function (error) {
      if (error.response.status === 401) {
        console.log('Failed to login')
        router.push('/Login')
      }
      return Promise.reject(error)
    })
    

    我正在尝试将用户重定向到 Login 在我的单页应用程序中显示 401 收到错误代码。 但是我没有被重定向,我的chrome开发工具也没有出错。我知道 console.log 具有 Failed to login 是的。

    2 回复  |  直到 6 年前
        1
  •  6
  •   Rubén Pozo    6 年前

    我也发现了类似的情况。我已经修正了这个密码:

    import router from 'router'
    import store from 'store'
    ...
    ...
    axios.interceptors.response.use(function (response) {
      return response
    }, function (error) {
      console.log(error.response.data)
      if (error.response.data.error.statusCode === 401) {
        store.dispatch('logout')
        router.push('/login')
      }
      return Promise.reject(error)
    })
    
        2
  •  3
  •   Eduardo Cuomo Sajjad Ali Khan    6 年前

    你可以这样做:

    axios.post("quote", params)
      .catch(function(error) {
        if (error.response && error.response.status === 401) {
          window.location.href = "logon";
        } else {
          // Handle error however you want
        }
      });
    

    资料来源: https://github.com/axios/axios/issues/396#issuecomment-395592900