[我正在尝试从刀片服务器视图中从本地存储发送2个变量,该刀片视图没有输入,但是附加了一个JS文件,该文件生成了这两个变量,并将其与ajax发送到控制器一起,该控制器会将信息添加到数据库中。
在刀片中,我添加了令牌的元信息:<meta name="csrf_token" content="{{ csrf_token() }}" />
我的ajax请求看起来像这样:
$.ajax({
type: 'POST',
url: '/addvote',
headers:
{
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
},
dataType: "json",
data: {
_token: $('meta[name="csrf-token"]').attr('content'),
id: localStorage.getItem('id'),
number: localStorage.getItem('number')
},
});
我添加了POST路线:Route::post('/addvote', "CandidateController@addvote");
而且我在控制器中的功能看起来像这样:
public function addvote(Request $request){
$id_candidate = $request['id'];
...
return redirect("/home");
}
[如果有人发送刀片中未收集的数据,有人可以解释我是否必须拥有此CSRF令牌,如果这样,我会因为服务器错误500而丢失或做错了什么。
您正在发送两个CSRF令牌
- 在您的请求标题中。
- 在您的帖子数据中。
尝试删除其中一个。