Vue-axios拦截器401错误

时间:2017-11-13 07:46:18

标签: vue.js interceptor axios

由于令牌过期,api会给出401 Unauthorized错误。

即使错误状态代码(401)在axios拦截器中不可用。

inputFileName="$1"
matchFile="$2"
outputFile="$3"

matchFileIds=$(cat $matchFile); 
echo "$matchFileIds"

for IDS in $(cat $inputFileName);
do
    for i in $(echo $IDS | sed "s/,/ /g")
    do
    # here we get each id in inputfile separately, 
    # I want to check if $i belongs id in  matcherFile
    echo "$i"

    done
done

我有什么方法可以得到它,下面github issue error.response.status 可以使用,但 error.response未定义

Http错误: 无法加载http://localhost:5000/api/user:请求的资源上没有“Access-Control-Allow-Origin”标头。因此,不允许原点“http://localhost:2323”访问。响应的HTTP状态代码为401。

来自intercepter response.use 的

Console.log(错误) 错误:网络错误     at createError(createError.js:16)     在XMLHttpRequest.handleError(xhr.js:87)

1 个答案:

答案 0 :(得分:0)

这是我的axios错误处理程序代码。它运行。 如果需要,可以删除吐司代码。

import axios from 'axios'
import toast from './toast'
import store from '../../store'

// apply interceptor on response
axios.interceptors.response.use(function (response) {
  if (response.status === 200 && response.data.message) {
    toast.success(response.data.message)
  }
  if (response.status === 201 && response.data.message) {
    toast.success(response.data.message)
  }
  return response
}, function (error) {
  // Do something with response error
  // check for errorHandle config

  // if has response show the error
  if (error.response) {
    if (error.response.status === 404 || error.response.status === 400) {
      toast.error(error.response.data.message)
    }
    if (error.response.status === 401) {
      // if you ever get an unauthorized, logout the user
      store.dispatch('logout')
    // you can also redirect to /login if needed !
    }
  }
  return Promise.reject(error)
})