如何在Axios中处理net ERR_CONNECTION_REFUSED-Vue.js

JavaScript Vue.js

宝儿

2020-04-03

以下是我的连接请求代码:

doLogin(this.login).then(response => {
        var token = response.data.token;
        localStorage.setItem('AUTH_TOKEN', JSON.stringify(token));
        this.$router.push({name: 'Devices'});
        });
      }).catch(error => {
        console.log(error.response.data.message);
      });

catch()部分工作正常的HTTP错误(例如400404403...等)。但是,当我的服务器离线时,该脚本就会抛出net::ERR_CONNECTION_REFUSED有什么方法可以处理此错误,并使前端用户知道服务器当前处于脱机状态。

这是doLogin()函数,以防万一,

function doLogin(data) {
  const url   = 'http://localhost:3000/authenticate';
  return axios.post(url,data);
}

第3983篇《如何在Axios中处理net ERR_CONNECTION_REFUSED-Vue.js》来自Winter(https://github.com/aiyld/aiyld.github.io)的站点

3个回答
Tony凯 2020.04.03

您应该执行@chithra指出的相同验证,.then()因为在关闭服务器的测试请求时我遇到了一个奇怪的问题,“响应”就好像成功了一样。

另外,.then()response.status代替 response.error

2020.04.03

您可以使用拦截器

axios.interceptors.response.use(
    response => {
        return response
    },
    error => {
        if (!error.response) {
            console.log("Please check your internet connection.");
        }

        return Promise.reject(error)
    }
)
AEva 2020.04.03

您可以像潘俊杰建议的那样来验证自己,也可以使用sindresorhus / is-reachable之类的库后者将是我的首选。

干杯!

问题类别

JavaScript Ckeditor Python Webpack TypeScript Vue.js React.js ExpressJS KoaJS CSS Node.js HTML Django 单元测试 PHP Asp.net jQuery Bootstrap IOS Android