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

新手上路,请多包涵

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

 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);
}

原文由 Jithesh Kt 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 2.5k
2 个回答

你可以在 catch 部分试试这个:

 catch(error => {
        if (!error.response) {
            // network error
            this.errorStatus = 'Error: Network Error';
        } else {
            this.errorStatus = error.response.data.message;
        }
      })

原文由 chithra 发布,翻译遵循 CC BY-SA 3.0 许可协议

您可以使用 拦截器

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

        return Promise.reject(error)
    }
)

原文由 Sinan Eldem 发布,翻译遵循 CC BY-SA 4.0 许可协议

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