是否可以在Vue中使用Axios进行的API调用上全局设置侦听器? Laravel后端在每个端点上都设置了中间件,该中间件将提供请求的数据或返回一条消息,指出他们需要检查其消息。我的目标是捕获该消息并将用户重定向到页面以查看其消息。除了在每个函数中设置一些检查消息并做出相应响应的功能之外,我没有其他方法可以做到。有成百上千的功能,这不是一个干净的解决方案。
欢迎任何建议!
答案 0 :(得分:1)
使用Axios Interceptors,您可以按照以下步骤进行操作:
this.$http.interceptors.response.use(response => () {
// Redirect to a new page when you send
// custom header from the server
if (response.headers.hasOwnProperty('my-custom-header')) {
window.location.href = '/another-page';
}
// Or when you get a specific response status code
if (response.status === 402) {
window.location.href = '/another-page';
}
// Or when the response contains some specific data
if (response.data.someKey === 'redirect') {
window.location.href = '/another-page';
}
// ...or whatever you want
});