我使用了edittable jquery插件:
<td>Name</td><td class="name" data-pk="<?php echo auth()->user()->id;?>" data-url="{{url('/edit/name')}}">{{auth()->user()->name}}</td>
和$('.name').editable();
此路线:Route::post('/edit/name', 'EditController@name');
控制器:
public function name(Request $request)
{
$update=User::find()->where(['id'=>$request->pk])->first();
$update->name=$request->value;
$update->update();
}
但是我得到了TokenMismatchException错误:如何在使用jquery x-editable插件时传递令牌?
答案 0 :(得分:2)
在laravel中,对于post请求,您还必须传递csrf标记值。它是laravel提供的安全机制。要删除此错误,请尝试以下操作:
<input type="hidden" name="_token" value="{{ csrf_token() }}">
将此隐藏字段放在您的表单标记中,其值也会在提交表单时发布。
对于ajax:
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
答案 1 :(得分:0)
尝试在表单html代码中添加以下行
<input type="hidden" name="_token" value="{{ csrf_token() }}">
我希望它有效。