使用csrf令牌时,在Laravel 5.1的VerifyCsrfToken.php第53行中获取TokenMismatchException

时间:2017-06-05 18:22:43

标签: laravel laravel-5.1

我在VerifyCsrfToken.php第53行收到TokenMismatchException: 我正在使用<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div class="topmenu"> <ul class="nav"> <li class="tab-link current" data-tab="strona_glowna"><a href="#">Strona główna</a></li> <li class="tab-link" data-tab="spis_tresci"><a href="#">Spis treści</a></li> <li><a href="#">Poradniki</a> <ul> <li class="tab-link" data-tab="poradnik_1"><a href="#">Poradnik 1</a></li> <li class="tab-link" data-tab="poradnik_2"><a href="#">Poradnik 2</a></li> <li class="tab-link" data-tab="poradnik_3"><a href="#">Poradnik 3</a></li> <li class="tab-link" data-tab="poradnik_4"><a href="#">Poradnik 4</a></li> </ul> </li> <li class="tab-link" data-tab="o_autorze"><a href="#">O autorze</a></li> </ul> </div> <div id="strona_glowna" class="tab-content current"> <h1>Strona główna</h1> <p>Strona główna</p> </div> <div id="spis_tresci" class="tab-content"> <h1>Spis treści</h1> <p>Spis treści</p> </div> <div id="poradnik_1" class="tab-content"> <h1>Poradnik 1</h1> <p>Poradnik 1</p> </div> <div id="poradnik_2" class="tab-content"> <h1>Poradnik 2</h1> <p>Poradnik 2</p> </div> <div id="poradnik_3" class="tab-content"> <h1>Poradnik 3</h1> <p>Poradnik 3</p> </div> <div id="poradnik_4" class="tab-content"> <h1>Poradnik 4</h1> <p>Poradnik 4</p> </div> <div id="o_autorze" class="tab-content"> <h1>O autorze</h1> <p>O autorze</p> </div> {!!Form::open()!!}。当我第一次单击带有空字段的表单中的添加按钮时,它会在我设置验证规则时显示错误。但是当我再次单击“添加”按钮而不刷新页面时,它会显示TokenMismatchException错误。我已经使用dd()进行了检查,它向我显示了这样的标记:

{!!Form::close!!}

这是我的表单代码:

 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() !!}

有人可以帮忙吗?

2 个答案:

答案 0 :(得分:0)

我已经通过

解决了这个问题
`VerifyCsrfToken.php`

然后我改变了

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

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

答案 1 :(得分:-1)

在表单中尝试添加

 {{ csrf_field() }} 

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