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() !!}
我为我的站点创建了一个简单的 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() !!}