Javascript 使用Vue路由器时,Laravel路由不工作
我正在尝试调用一个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
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');代码>