我正在使用 Laravel 5.3 和 laravelcollective / html 表格帮助。
当我提交表单时,如果验证失败,则会使用return redirect()->back()->with
然后,如果我再次重新提交相同的表单,我将得到一个TokenMismatchException,发生的事情是在重新加载表单后csrf标记没有刷新。
有关如何刷新令牌的任何想法?
更新11/07
要打开表单,我使用以下内容:
{!! Form::open(['url'=>'/user/create', 'method'=>'post', 'id'=>'create']) !!}
自动添加令牌字段。
但我也试过手动添加令牌,如下所示:
{!! Form::open(['url'=>'/user/create', 'method'=>'post', 'id'=>'create']) !!}
{!! Form::token() !!}
这里令牌实际上是两次创建的,两个令牌都是相同的。
答案 0 :(得分:0)
问题是我将值_token发送回视图。 我在做的是:
return redirect()
->back()
->with(
['errors' => $validator->errors()->all()]
+ $request->input()
);
$ request->输入(' _token')未被过滤的情况。 相反,我已将其更改为以下工作,因为它会过滤_token:
return redirect()
->back()
->withErrors($validator->errors()->all())
->withInput($request->input());