Javascript 使用Vue路由器时,Laravel路由不工作

Javascript 使用Vue路由器时,Laravel路由不工作,javascript,laravel,vue.js,vue-router,Javascript,Laravel,Vue.js,Vue Router,我正在尝试调用一个laravel路由route::get('/logout',Auth\LoginController@logout');将注销用户并重定向到登录页面,但当我尝试重定向到此url时,它将不起作用,任何情况都会发生,就像它调用vue路由器路由一样,但此路由在我的router.js中不存在 这是我到vue路由的路由配置: Route::get('/{vue_capture?}', function () { return view('index'); })->where

我正在尝试调用一个laravel路由
route::get('/logout',Auth\LoginController@logout');
将注销用户并重定向到登录页面,但当我尝试重定向到此url时,它将不起作用,任何情况都会发生,就像它调用vue路由器路由一样,但此路由在我的
router.js
中不存在

这是我到vue路由的路由配置:

Route::get('/{vue_capture?}', function () {
    return view('index');
})->where('vue_capture', '^(?!storage).*$');
这是我的
路由器.js

//import ...

Vue.use(Router)

export default new Router({
    mode: 'history',
    routes: [{
        path: '/',
        component: Inicio
    }, {
        path: '/viagens/cadastrar',
        component: Cadastrar
    }, {
        path: '/viagens/listar',
        component: Listar
    }]
})
我的
route.js
中没有
/logout
路由,为什么它不调用我的laravel路由??

尝试放置您的vue路由 在这一行之前:-

Auth::routes();

首先,将Laravel auth routes添加到routes文件夹中的web.php文件中

Auth::routes();
然后在前端发送一个注销请求路由

  axios.post('/logout').then(response => {
                location.reload();
            }).catch((error) => {
               console.log(error);
            });

如何在vue组件中生成链接:使用
路由器链接
href

  • 如果要调用vue路由,请使用
    路由器链接
  • 如果要呼叫“正常”或laravel路线,请使用
    href

让我知道它是否有效。

我在myproject中做了什么。web.php中有Auth::routes()。它将通过在AthenticatesUser.php中调用ougout来处理它。请看一下这个php类

<template>
<div class="container">
    <button class="btn" @click="logout">logout</button>
    <form id="logout-form" action="/logout" method="POST" style="display: 
none;">
                        <input type="hidden" name="_token" :value="token">
                    </form>
    <router-view></router-view>
</div>
</template>
 <script>
  export default {
  computed: {
        token() {
            let token = document.head.querySelector('meta[name="csrf-token"]');
            return token.content
        }
    },
    methods: {
        logout() {
            document.getElementById('logout-form').submit()
        }
    }
}

注销
导出默认值{
计算:{
代币(){
让token=document.head.querySelector('meta[name=“csrf token”]”);
返回token.content
}
},
方法:{
注销(){
document.getElementById('logout-form').submit()
}
}
}

我不明白。。。你在哪里调用laravel注销路径?@porloscerosψ在按钮链接中,但即使直接在URL中也不起作用。你能在回答中添加为什么这会解决他们的问题吗?因为这应该在catchall路由之前,而不是之后,itI可以这样做post请求,但我正在尝试通过URL向laravel路由发出get请求。在这种情况下,我应该怎么做?您使用的是Laravel Passport吗?不,我使用的是Laravel的默认身份验证适配器。请在您的路由文件
route::get('logout','\App\Http\Controllers\Auth中尝试此操作\LoginController@logout');