Vue封装的axios拿不到错误状态码

封装的axios,如果请求错误会出现404之类的状态码,我想拿到这些状态码做一些提示功能,但是拿不到,不知道哪儿出了问题,写过的大神帮忙看一下


如果请求出现错误,在错误处理里面只能输出error,error.response和error.response.status都是没有值的,比如下面我特意写错一个接口,应该返回404,但是我是拿不到的
然后我输出error.response和error.response.status,都是没有值的

没有人写过吗?快要疯了

你的 response 里面包含什么数据

拦截的是发送完成后的错误,你这个有跨域问题,发送都发送不出去,何来拦截

1 Like

那个是一个错误的地址当然发送不出去,根本就没有那个请求地址,是我特意写错的地址,就是想获取那个状态码

你拦截的是接收 ,但是你没发送 所以没接收

我试了一下如果换成同域名是可以的,同域名的情况下可以接收到404

就目前我的测试情况是由于跨域的问题

你想单纯地改 error 的状态的话 可以这样手动添加 code

axios.interceptors.response.use(
    res => {
        return Promise.reject({
            code:404
        })
        return res
    },
    error => {
        console.log(error.code)
       
        return Promise.reject(error)
    }
)


另外,跨域可以使用代理解决

这个问题最后怎么解决的,问题出在哪?

使用代理,或者上线后和接口在一个域名下就行了

这个问题我也很好奇,请求拦截和响应拦截具体应该判断哪些状态码呢