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。