2017-02-04 81 views
0

submiting我用edittable jQuery插件:TokenMismatchException在VerifyCsrfToken.php同時通過edittable

<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', '[email protected]');

而且控制器:

public function name(Request $request) 
    { 
     $update=User::find()->where(['id'=>$request->pk])->first(); 
     $update->name=$request->value; 
     $update->update(); 
    } 

但我得到了TokenMismatchE xception錯誤:如何在使用jquery x-editable插件時傳遞令牌?

回答

2

在laravel中,對於post請求,您還必須傳遞csrf標記值。它是一個由laravel提供的安全機制。要刪除此錯誤,試試這個:

<input type="hidden" name="_token" value="{{ csrf_token() }}"> 

將這個隱藏字段的形式標記內,提交表單時它的價值也已發佈。

Reference

爲Ajax:

$.ajaxSetup({ 
    headers: { 
     'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') 
    } 
}); 
+0

但是,我沒有表格。 – Steve

+0

我不知道是否使用ajax。這是我用過的插件。 https://vitalets.github.io/x-editable/ – Steve

+1

這工作後,在HTML元標記.thanks添加令牌。 – Steve

0

嘗試添加以下行形式的html代碼

<input type="hidden" name="_token" value="{{ csrf_token() }}"> 

我希望它的作品。

+0

但是,我沒有一個形式。 – Steve

相關問題