带有React的Laravel API。获取“POST”以401响应:“未授权”

时间:2018-01-26 12:47:04

标签: javascript laravel reactjs api fetch

我似乎无法弄清楚如何将新数据发布到数据库。 我有一个带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/*'
];

有任何想法如何解决此问题?

1 个答案:

答案 0 :(得分:0)

感谢Kyslik,我发现这是未经授权的中间件。

我的控制器中有

__contruct() { $this->middleware('auth') } 

删除后,问题已解决