我正在尝试使用HTML表单使用post方法将用户传递给Laravel,以便可以将UserController中的用户存储到数据库中。我收到CSRF Token mismatch
错误。
我已使用此方法存储用户:
addUser(user: User):Observable<User>{
return this.http.post<User>(this.apiURL+'/addUser',user, httpOptions);
}
当我console.log
用户时,它工作正常。当我点击提交时,它将显示所有属性。
我已经在Laravel中使用此Route来存储用户:
Route::post('/addUser','UserController@create');
在Controllermethod中,我使用了以下代码:
public function create(Request $request)
{
$data2 = $request->json()->all();
return User::create([
'name' => $data['name'],
'email' => $data['email'],
'password' => Hash::make($data['password']),
]);
}
答案 0 :(得分:1)
Laravel默认情况下为所有路由启用VerifyCsrfToken
中间件。这是出于安全考虑(以避免跨站点攻击),并检查所有请求的CSRF令牌。但是您可以为路由组设置中间件,例如web
,api',
控制台。
尝试将VerifyCsrfToken
中间件从$middleware
变量移到web
的{{1}}变量的$middlewareGroups
组。这样,您只为Http/Kernel.php
路由启用了此中间件。
希望这会有所帮助。