![](/img/trans.png)
[英]Redirect() Doesnt work after POST Submit with @csrf, keeps on reloading the page
[英]Laravel keeps reloading the page after redirect
我正在嘗試創建一個簡單的登錄表單。 當我按下登錄按鈕時,一個請求被發送到我的控制器,在那里我可以看到dd($request); 接收到的數據; . 但是當我驗證數據時,如果數據不正確,頁面開始重新加載並繼續重新加載。
控制器:
class UserController extends Controller
{
public function loginView()
{
return view('admin-login');
}
public function userLogin(Request $request)
{
$request->validate([
'email' => 'required|email',
'password' => 'required|alphaNum|min:8',
]);
$user_data = [
'email' => $request->get('email'),
'password' => $request->get('password'),
];
if (Auth::attempt($user_data)) {
return redirect('/admin');
} else {
return back()->with('error', 'Wrong email or password');
}
}
}
登錄表單:
<form style="width: 23rem;" action="{{ route('login.custom') }}" method="post">
@csrf
<h3 class="fw-normal mb-3 pb-3" style="letter-spacing: 1px;">Log in</h3>
@if ($errors->any())
<div class="alert alert-danger alert-dismissible fade show" role="alert">
<i class="fa-solid fa-triangle-exclamation"></i>
<strong>Error!</strong> Wrong email or password
<button type="button" class="btn-close" data-bs-dismiss="alert"
aria-label="Close"></button>
</div>
@endif
<div class="form-outline mb-4">
<input type="email" name="email" placeholder="Enter a valid email address"
id="email" class="form-control form-control-lg" value="{{ old('email') }}" />
<span class="text-danger">@error('email') {{ $message }} @enderror</span>
</div>
<div class="form-outline mb-4">
<input type="password" name="password" placeholder="Enter password" id="password"
class="form-control form-control-lg" />
<span class="text-danger">@error('password') {{ $message }} @enderror</span>
</div>
<div class="pt-1 mb-4">
<button class="btn btn-primary btn-lg btn-block login-btn"
type="submit">Login</button>
</div>
</form>
路線:
Route::get('/login', [UserController::class, 'loginView'])->name('login');
Route::post('custom-login', [UserController::class, 'userLogin'])->name(
'login.custom'
);
嘗試這個
if (Auth::check()) { // use this instead of Auth::attempt($user_data)
return redirect('/admin');
} else {
return back()->with('error', 'Wrong email or password');
}
我希望它有用!
解決方案:
我正在使用 VS Code 中的 Live Server 擴展來自動刷新頁面。 此擴展程序在重定向后一次又一次地重新加載頁面。 所以,現在關閉它后一切正常。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.