axios的拦截器代码应该放到请求代码什么地方?
比如这里有个get请求,代码如下:
<script>
export default {
data() {
return {
dialogFormVisible: false,
}
},
methods: {
checkLogin(){
axios.get('/check-login')
.then(response => {
console.log(response);
this.dialogFormVisible = true; // if is login,run this sentence
})
.catch(error => {
console.log(error);
location.href = "/login"; //if is not login ,jump to login page
});
}
}
}
</script>
文档中拦截器的代码如下:
axios.interceptors.response.use(function (response) {
// Do something with response data
return response;
}, function (error) {
// Do something with response error
return Promise.reject(error);
});
问题:
这个拦截器应该放到上面请求代码的什么地方?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
说明两点:
interceptor必须在请求前设置才有效。
直接为axios全局对象创建interceptor,会导致全局的axios发出的请求或接收的响应都会被拦截到,所以应该使用axios.create()来创建单独的axios实例。
官方原话:
用vue-cli创建了个测试项目,代码如下:
控制台输出: