【发布时间】:2018-07-05 19:28:45
【问题描述】:
我似乎无法弄清楚如何将新数据发布到数据库。 我有一个带有 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/*'
];
任何想法如何解决这个问题?
【问题讨论】:
-
它与csrf无关,它与api组有关。打开您的路线服务提供商以了解更多信息。
-
middleware('auth:api')这就是给你 401 响应的原因...... -
Route::middleware('auth:api')->get('/user', function (Request $request) { return $request->user(); });路线::post('klippekort','KlippekortController@store');应该没有影响吧?
-
当我将其注释掉时,我得到了同样的错误......并且我以管理员身份登录?
-
运行以下命令:
php artisan route:list找到您遇到问题的路由并查看其中间件
标签: javascript laravel reactjs api fetch