【问题标题】:TokenMismatchException when posting a form using laravel5.4使用 laravel5.4 发布表单时出现 TokenMismatchException
【发布时间】:2017-04-03 09:15:29
【问题描述】:

当我尝试发布表单时,VerifyCsrfToken.php 第 68 行中的 TokenMismatchException。

<form method="post" action="url('add')" >
{{ csrf_field() }}
<input type="text" name="title" />
<input type="submit" value="Add" />
</form>

在我添加 this 包之前它工作正常。

【问题讨论】:

  • 检查{{ csrf_field() }}有一个令牌!!否则使用刀片form标签
  • 是的,它有
  • 尝试添加刀片表单标签{!! Form::open(['url' =&gt; 'add']) !!}..... {!! Form::close()!!}
  • @BalrajAllam 如果我没记错的话,Laravel 5 不再有 Form / HTML 类了。您需要手动添加它们
  • Laravel 表单标签不会产生影响,CSRF 字段显然已被填充,使用 LaravelCollective 开放表单与 OP 已有的没有什么不同

标签: forms laravel token


【解决方案1】:

您可以像Andranik Petrosyan 建议的那样在表单中手动添加隐藏输入字段,而不是{{ Form::open() }}

但我还是想让你试试

{!! csrf_field() !!} 而不是{{ csrf_field() }}

【讨论】:

    【解决方案2】:

    如果你不使用 Laravel Form,例如:

    {!! Form::open([]) !!}
    {!! Form::close() !!}
    

    你可以使用:

    <input type="hidden" name="_token" value="{{ csrf_token() }}">
    

    有时您还需要清除缓存。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多