尝试实现PATCH
路由,如果路径为/{userid}/{attribute}
,则该用户的属性将更改为指定的属性。我目前有:
Route::patch('/{userId}/{band}', function($userId, $band){
$user = DB::table('users')->find($userId);
$user->favorite_band = $band;
$user->save();
return $user;
});
这不起作用。我的错误是
(1/1) TokenMismatchException in VerifyCsrfToken.php (line 68)
我对Laravel
很新,不知道如何做到这一点。这都是在web.php
路由文件中完成的。我还没有使用Controller
。
答案 0 :(得分:0)
Laravel默认提供CSRF保护。
您需要将CSRF令牌传递给AJAX请求:
将令牌存储在<head>
部分:
<meta name="csrf-token" content="{{ csrf_token() }}">
假设您使用的是jQuery,请将令牌添加到所有请求标头中:
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
答案 1 :(得分:0)
在Laravel 5中,在表单字段中插入csrf标记。
<form action="/foo/bar" method="POST">
<input type="hidden" name="_method" value="PATCH">
<input type="hidden" name="_token" value="{{ csrf_token() }}">
...
</form>
答案 2 :(得分:0)
在App \ Http \ Middleware文件夹中的VerifyCsrfToken.php文件中更新如下
protected $except = [
'*'
];