Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/469.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何处理Axios-Vue.js中的net::ERR_CONNECTION_拒绝_Javascript_Vue.js_Axios - Fatal编程技术网

Javascript 如何处理Axios-Vue.js中的net::ERR_CONNECTION_拒绝

Javascript 如何处理Axios-Vue.js中的net::ERR_CONNECTION_拒绝,javascript,vue.js,axios,Javascript,Vue.js,Axios,以下是我的连接请求代码: doLogin(this.login).then(response => { var token = response.data.token; localStorage.setItem('AUTH_TOKEN', JSON.stringify(token)); this.$router.push({name: 'Devices'}); }); }).catch(error => {

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

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错误(如
400
404
403
等)。但当我的服务器脱机时,此脚本只会抛出
net::ERR\u CONNECTION\u
。是否有办法处理此错误并让前端用户知道服务器当前处于脱机状态

这是doLogin的函数,以防万一

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

你可以像建议的那样验证你自己,或者使用像这样的库。后者将是我的首选


干杯

您可以在catch部分中尝试:

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

您应该执行@chithra在
.then()
中指出的相同验证,因为在服务器关闭的情况下测试请求时,我遇到了一个奇怪的问题,“响应”似乎是成功的


另外,在
.then()
上,使用
response.status
而不是
response.error
执行此操作,您可以使用拦截器

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

        return Promise.reject(error)
    }
)

您正在打印
错误.响应.数据.消息
。您是否尝试只记录
错误
?找到解决方案了吗?下面的answear都不能处理这种错误。谢谢。不执行作业。这不允许区分错误,如
net::ERR\u CONNECTION\u RESET
net::ERR\u CONNECTION\u拒绝
,并且可能,其他错误状态。我正在使用api的vue js应用程序上工作,我面临着类似的问题,这对我来说很好,但问题是我需要在发送到后端api的每个请求中都放上这个。但是,通过将其放置在一个位置来处理此问题的最佳方法是什么?@Ruby4Rails-为您的api构建一个服务类,并为每种类型使用一个方法,即get()、post()、delete()或其他方法。然后,无论在API中的何处调用方法,都可以始终处理这些边缘情况。我只是把它放在我的NextJS(React)
\u app.js
中的
useffect()
中,然后使用React的全局上下文从任何地方全局显示来自Material UI的Snackbar。