Vue axios post请求成功后 response 数据无法获取

使用axios发送post请求后台接口

this.$ajax.post('/user/login',{
        username: user,
        password: pass
    })
      .then(function (response) {
        console.log(response)
        console.log(response.data)
      })
      .catch(function (error) {
        console.log(error);
      });

axios过滤器设置如下:

const service = axios.create({
  baseURL: process.env.BASE_API, 
  timeout: 15000 
})

service.interceptors.request.use(config => {
  if (getToken) {
   config.headers['Authorization'] = getToken() 
  }
  return config
}, error => {
  console.log(error)
  Promise.reject(error)
})

请求成功,返回200

clipboard.png

返回的数据格式如下:

{
    "statusCode":200,
    "message":null,
    "data":{
        "UserDetail":{
            "username":"chenh",
            "authorities":[
                {
                    "authority":"admin"
                }
            ]
        },
        "token":"Bearer eyJhbGciOiJIUzUxMiJ9.eyJleHAiOjE1MjgxMjc0MjAsInN1YiI6ImNoZW5oIiwiY3JlYXRlZCI6MTUyNTUzNTQyMDY4OX0.nNxlNP5iyvmOKNWEjQg3kMdjO7gynTEO4QR6tF8CX465HD7c80rfZji8ZiWoWUBQa6VG4ES0NGDYJu4eKXqtgg"
    }
}

但控制台打印的reponse和response.data一直如下:

clipboard.png

后台接口如下(感觉接口返回的数据没问题,还是发出来吧):

clipboard.png

求大佬帮忙,谢谢。

阅读 33.5k
4 个回答

问题解决了。

我的response拦截器拦截了,修改后通了。

新手上路,请多包涵

我tm终于知道了,是因为utils/request.js这个文件里对response就行了拦截过滤,如果返回的json里没有code=200000,你就获取不到这个json,最好的办法就是注释掉里面关于code的if判断
image.png

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题