Laravel 5 - VerifyCsrfToken.php 中的 TokenMismatchException

Laravel 5 - TokenMismatchException in VerifyCsrfToken.php

我为我的站点创建了一个简单的 PUT 表单(我还有 GET 和 POST 表单,它们工作正常)。

<h1>Edit {!! $brands->brand_name !!}</h1>

    <!-- if there are creation errors, they will show here -->
    {!! Html::ul($errors->all()) !!}

    {!! Form::model($brands, array('route' => array('brands.update', $brands->id), 'method' => 'PUT', 'files' => true)) !!}

    <div class="form-group">
        {!! Form::label('brand_name', 'Name') !!}
        {!! Form::text('brand_name', null, array('class' => 'form-control')) !!}
    </div>

    <div class="form-group">
        {!! Form::label('brand_name_rus', 'Name_rus') !!}
        {!! Form::text('brand_name_rus', Input::old('brand_name_rus'), array('class' => 'form-control')) !!}
    </div>

    <div class="form-group">
        {!! Form::label('Your image') !!}
        <img src="http://parasha.dev/{{ $brands->img_brand_path }}"/>
    </div>

    <div class="form-group">
        {!! Form::label('img_brand_path', 'New image') !!}
        {!! Form::file('img_brand_path') !!}
    </div>

    {!! Form::submit('Edit the Brand!', array('class' => 'btn btn-primary')) !!}

    {!! Form::close() !!}

我还使用 Clip Two Theme 作为包含这些表单的管理面板的布局。当我同时使用两者时(布局和我的表单,它给了我一个 arror -> VerifyCsrfToken.php 中的 TokenMismatchException)。所以这个 bootstrap 主题以某种方式导致了这个错误。

所以我有两个问题。首先,我该如何解决这个问题。第二,我可以在不自动创建令牌的情况下创建 laravel 表单吗?对不起我的英语)

您的表单中似乎没有包含 csrf_token。

{!! csrf_field() !!} 添加到您的表单中。如果您使用 ajax 请求,您可以将 {!! csrf_field() !!} 放在 'master' 模板中并在 ajax header 中引用它,如下所示:

$.ajaxSetup({
headers: { 'X-CSRF-Token' : $('meta[name=_token]').attr('content')}
});

这也行得通:

{!! Form::token() !!}