Javascript axios响应侦听器的错误响应中未定义状态属性

Javascript axios响应侦听器的错误响应中未定义状态属性,javascript,http,axios,xmlhttprequest,Javascript,Http,Axios,Xmlhttprequest,我正在使用axios发出xhr请求,并试图检测获得的所有响应的状态。我有一个响应拦截器,如果触发了error函数,我会调用一个函数来检查响应的状态代码,并相应地处理UI: const axios = axios.create(); axios.interceptors.response.use(response => { // log the response in dev environment return response; }, er

我正在使用axios发出xhr请求,并试图检测获得的所有响应的状态。我有一个响应拦截器,如果触发了error函数,我会调用一个函数来检查响应的状态代码,并相应地处理UI:

const axios = axios.create();
    axios.interceptors.response.use(response => {
        // log the response in dev environment
        return response;
    }, error => {
        errorHandler(error);
        return Promise.reject({
            message: "ERROR"
        });
    });
在errorHandler中:

const errorHandler = e => {
        try {
            if (e.status === 599) {
                // do something
            }else if (e.status === 0){
                console.log('xhr cancelled');
            } else {
                // show error notification
            }
        } catch (ex) {
            // show error notification
        }
    };
对于一个特定的POST请求,如果它被中止(在xhr请求完成之前提交表单时),则错误对象中不存在状态。记录此错误时,我得到:

错误:请求中止
,出现
错误。code=ECONNABORTED

错误对象上具有以下属性:

config
code
request
response
isAxiosError
toJSON
我有两个问题:

  • 据我所知,在请求完成之前,所有xhr请求的状态都为0。那么,为什么error对象没有status属性呢
  • 我是否可以安全地假设收到此错误代码意味着xhr请求已取消并记录“xhr已取消”