我似乎无法弄清楚如何将新数据发布到数据库。 我有一个带handleSubmit的表单:
handleSubmit(e) {
e.preventDefault();
const {to_user, hours_spend, hours_max} = this.state
fetch('api/klippekort', {
method: 'POST',
headers: {
'X-CSRF-TOKEN': this.props.csrf_token,
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
to_user,
hours_spend,
hours_max
})
}).then(res => console.log(res))
} 我在控制台中得到的结果是:
Response { type: "basic", url: "http://localhost/api/klippekort", redirected: false, status: 401, ok: false, statusText: "Unauthorized", headers: Headers, bodyUsed: false }
CSRF令牌设置正确:
x-csrf-token: n9itPhKayehfKFTlmlq6xDn
在api.php中也设置了路由(这里没有中间件)
Route::post('klippekort','KlippekortController@store');
我还尝试在App \ Http \ Middleware \ VerifyCsrfToken中一起禁用CSRF令牌:
protected $except = [
'api/*'
];
有任何想法如何解决此问题?
答案 0 :(得分:0)
感谢Kyslik,我发现这是未经授权的中间件。
我的控制器中有
__contruct() { $this->middleware('auth') }
删除后,问题已解决