【发布时间】:2019-01-26 13:19:45
【问题描述】:
我正在尝试使用 Laravel 和 Vue 在子文件夹中使用 jwt 构建 SPA,但由于某种原因,我在加载页面时收到 405 Method Not Allowed。这是代码:
helper.js 中的方法
export default {
check() {
return axios.post('api/auth/check').then(response => {
return !!response.data.authenticated;
}).catch(error => {
return response.data.authenticated;
});
}
}
Vue 路线
router.beforeEach((to, from, next) => {
if (to.matched.some(r => r.meta.requiresAuth)){
return helper.check().then(response => {
if (!response){
return next({ path : '/unikit/login'});
}
return next();
});
}
if (to.matched.some(m => m.meta.requiresGuest)) {
return helper.check().then(response => {
if (response) {
return next({ path : '/unikit'});
}
return next();
});
}
return next();
});
export default router;
api中的路由:
Route::group(['prefix' => 'auth'], function () {
Route::post('/unikit/check','AuthController@check');
});
控制器方法:
public function check()
{
try {
JWTAuth::parseToken()->authenticate();
} catch (JWTException $e) {
return response(['authenticated' => false]);
}
return response(['authenticated' => true]);
}
还尝试在路由中删除“unikit”目录和斜杠,但没有任何反应。
【问题讨论】:
-
您正在向“api/auth/check”发出 ajax 请求,但您在 api 中显示的路线是“api/auth/unikit/check”。由于您收到 405 错误,因此 api/auth/check 必须存在,也许作为“get”方法?
标签: laravel vue.js single-page-application