当我刷新页面时,如何防止我的表单重新提交。我发现的解决方案建议重定向,我正在使用。
admin.enrollform.blade.php 中的表单:
<form id="enrollform" class="form-horizontal" role="form" method="post"
enctype="multipart/form-data"
action="{{route('storeStudent', ['site' => $site->site_url, 'lang' => $lang] )}}">
<input type="visible" name="_token" id="_token" value="{{ csrf_token() }}"/>
...
</form>
Run Code Online (Sandbox Code Playgroud)
Laravel 控制器:
public function store(Request $request, $site, $lang = null)
{
....
return view('admin.enrollform', [
'message' => $message
]);
}
Run Code Online (Sandbox Code Playgroud)
如果成功,控制器返回一个视图,它指向同一个页面。所以同一个页面再次加载,并带有一条消息。而且表格是空的。
但是,如果我此时单击刷新,表单将再次提交。我希望它只是刷新页面,无论是否有它从控制器收到的消息。
我有什么办法可以使用 CSRF 令牌来验证这一点吗?据我了解,CSRF 令牌仅验证会话是否有效,与表单本身无关。
谢谢。