[英]Laravel routes not working when using Vue Router
我正在尝试调用 Laravel 路由Route::get('/logout', 'Auth\\LoginController@logout');
这将注销用户并重定向到登录页面,但是当我尝试重定向到这个 url 时它不起作用,任何事情都会发生,就像它在调用 vue 路由器路由一样,但这条路由在我的router.js
中不存在router.js
。
这是我对 vue 路由的路由配置:
Route::get('/{vue_capture?}', function () {
return view('index');
})->where('vue_capture', '^(?!storage).*$');
这是我的router.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 组件中生成链接:使用router-link
或href
?
router-link
;href
;让我知道它是否有效。
尝试将您的 vue 路线放在此行之前:-
Auth::routes();
首先,将 Laravel auth 路由添加到路由文件夹中的 web.php 文件中
Auth::routes();
然后在前端发送请求注销路由
axios.post('/logout').then(response => {
location.reload();
}).catch((error) => {
console.log(error);
});
我在 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()
}
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.