Vue API调用和Laravel中间件

时间:2018-12-11 16:09:27

标签: laravel vuejs2 middleware

是否可以在Vue中使用Axios进行的API调用上全局设置侦听器? Laravel后端在每个端点上都设置了中间件,该中间件将提供请求的数据或返回一条消息,指出他们需要检查其消息。我的目标是捕获该消息并将用户重定向到页面以查看其消息。除了在每个函数中设置一些检查消息并做出相应响应的功能之外,我没有其他方法可以做到。有成百上千的功能,这不是一个干净的解决方案。

欢迎任何建议!

1 个答案:

答案 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
});