【问题标题】:Getting TokenMismatchException in VerifyCsrfToken.php line 53 in Laravel 5.1 while using csrf token在使用 csrf 令牌时在 Laravel 5.1 中的 VerifyCsrfToken.php 第 53 行中获取 TokenMismatchException
【发布时间】:2017-11-06 14:27:28
【问题描述】:

我在 VerifyCsrfToken.php 第 53 行收到 TokenMismatchException: 我正在使用{!!Form::open()!!} {!!Form::close!!}。当我第一次在表单中单击带有空字段的添加按钮时,它会在我设置验证规则时显示错误。但是,当我再次单击“添加”按钮而不刷新页面时,它会显示 TokenMismatchException 错误。我已经检查了 dd(),它向我显示了这样的令牌:

 array:3 [▼
 "_token" => "5dXwRHbz4GNY1tx9OVeWPcOkirVIm0YtpkZufFbr"
 "menu_name" => ""
 "menu_price" => ""

这是我的表单代码:

{!! Form::open(array('route' =>'upcoming.store', 'method'=>'POST')) !!}
                    <div class="col-lg-6 col-sm-offset-3 top-spacing">
                        <input type="text" name="menu_name" placeholder="Menu Name.." class="form-control">
                    </div>
                    <div class="col-lg-6 col-sm-offset-3 top-spacing">
                        <input type="text" name="menu_price" placeholder="Menu Price.." class="form-control">
                    </div>

                    <div class="col-sm-2 col-sm-offset-8 top-spacing">
                        <button class="btn btn-success">
                            Add +
                        </button>
                    </div>

                </div>
                {!! Form::close() !!}

这是我的控制器存储功能:

public function store(Request $request)
{
    dd($request->all());
    $this->validate($request, array(
        'menu_name'=>'required',
        'menu_price'=>'required',
        ));
    $upcoming = new Upcomingfood;
    $upcoming->menu_name=$request->menu_name;
    $upcoming->menu_price=$request->menu_price;
    $upcoming->save();
    Session::flash('success','Food Menu Added Successfullly');
    return redirect()->back();
}

谁能帮忙?

【问题讨论】:

  • 您能否在您的场景中将redirect()-&gt;back() 替换为route('upcoming_food/create')view('upcoming_food/create')?由路由名称和视图名称组成。
  • 添加withInput() 也会改变什么吗? laravel.com/docs/5.4/redirects#creating-redirects
  • 仍然没有解决方案 :-(

标签: laravel laravel-5.1


【解决方案1】:

尝试添加

 {{ csrf_field() }} 
在表单中。

我真的建议你阅读官方文档https://laravel.com/docs/5.4/csrf

【讨论】:

  • 为什么我在使用 Form::open and close 时应该使用 {{ csrf_field() }} 。正如我在我的问题中提到的,它还使用 dd 打印令牌。顺便说一句,我试过{{ csrf_field() }}。但它仍然给我同样的结果。谢谢。
【解决方案2】:

我已经解决了这个问题

`VerifyCsrfToken.php`

然后我变了

throw new TokenMismatchException; 经过 else{ return redirect()->back(); }

但我不确定我以这种方式应用是对还是错。它会给我以后在这个项目中的工作带来什么问题吗?任何人请让我确定。请。

【讨论】:

    猜你喜欢
    • 2016-06-29
    • 2016-03-03
    • 2015-09-05
    • 2016-01-02
    • 2016-03-20
    • 2015-11-07
    • 2016-09-02
    • 2017-07-20
    • 1970-01-01
    相关资源
    最近更新 更多