在jquery ajax
之前,我们可以这样做:
$.ajax({
type: param.method || 'get',
url: param.url || '',
dataType: param.type || 'json',
data: param.data || '',
success(res){
if(res.status === 0){
typeof param.success === 'function' && param.success(res.data, res.msg)
}else if(res.status === 10){
_this.doLogin()
}else if(res.status === 1){
typeof param.error === 'function' && param.error(res.msg)
}
},
error(err){
typeof param.error === 'function' && param.error(err.statusText)
}
})
在上述代码中,例如,当res.status===0
时,执行typeof param.success === 'function' && param.success(res.data, res.msg)
如果在axios
中,如何处理此自定义状态并执行相应的操作?
答案 0 :(得分:1)
可以通过以下两种方法完成它们:
yourFunctionCall() {
alert('hello!');
}
1)interceptors,它会在每次请求时发生
axios.interceptors.response.use(function (response) {
if (response.status === 0) {
yourFunctionCall();
}
return response;
}, function (error) {
// Do something with response error
return Promise.reject(error);
});
2),或者在实际的axios
中调用自身(取决于您的设置)
axios({
...
method:'get',
url:'<your-http-call>',
...
}).then(function(response) {
console.log(response.status); // via status code
console.log(response.data.status); // via response status code
if (response.status === 0) {
yourFunctionCall();
}
}).catch(function (error) {
console.log(error.response); // log error response
});