使用vuejs和laravel登录后,页面不会呈现Inertia



我正在使用带有vuejs和inertiajs的laravel项目。我想让用户登录,登录后我希望用户重定向到test.vue文件,我创建这个文件只是为了学习。我在提交注册表格后做了一个注册表格,我调用了一个函数登录,即我希望同一个用户登录,谁注册了。我设置的登录功能工作正常,但无法使用惯性渲染重定向到vue页面。

注册表格.vue


SubmitRegistration(){
this.$v.$touch();
if (this.$v.$invalid) return;
axios.post('submitRegistrationForm',this.form)
.catch(({ response }) => {
this.$toast.error(response.data.message, 'error', {timeout:3000});
}).then(({ data }) => {
this.setLogin();
});
},
setLogin(){
const data = {
email: this.form.email,
password: this.form.password
}
axios.post('loggedInUser',data)
.catch(({ response }) => {
this.$toast.error(response.data.message,'error', {timeout: 3000});
});
},

web.php


Auth::routes();
Route::post('loggedInUser',[FrontEndController::class,'authenticate'])->name('login.attempt');

FrontEndController.php


public function authenticate(Request $request)
{
$credentials = $request->only('email', 'password');

if (Auth::attempt($credentials)) {
return Inertia::render('Layouts/Test');
}
}

测试.vue


<template>
<h1>
Hello
</h1>
</template>

尝试使用this.$inertia.post(url, data)而不是axios调用访问loggedInUser。也就是说,做:

setLogin() {
const data = {
email: this.form.email,
password: this.form.password
}
this.$inertia.post(url, data);
};

而不是:

setLogin() {
const data = {
email: this.form.email,
password: this.form.password
}
axios.post('loggedInUser',data)
.catch(({ response }) => {
this.$toast.error(response.data.message,'error', {timeout: 3000});
});
}

相关内容

  • 没有找到相关文章

最新更新