React js - Laravel 5:在 POST 方法中使用 csrf-token

Hir*_*oki 5 javascript laravel reactjs

我已经阅读了一些关于 Laravel 的 CSRF 的问题,但我仍然没有找到如何在 React 中使用它。我的目标是制作一个 POST 表单,在那里我进行 AJAX 调用。

这是我的render( ).

render() {
return (
  <form method="post" action="logpage">
   <input type="hidden" name="csrf-token" value="{{{ csrf_token() }}}" />
   //I'm sure this doesn't have csrf_token.

   <input type="text" name ="word" value={this.state.word || ''}/>
   <button onClick={this.submit} className="btn btn-flat btn-brand waves-attach waves-effect" data-dismiss="modal" type="button">Save</button>
  </form>
  );
}
Run Code Online (Sandbox Code Playgroud)

这是提交功能。

submit(){
fetch('/words', {
  method: 'POST',
  headers: {
    'Accept': 'application/json',
    'Content-Type': 'application/json',
    'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
  },
  body: JSON.stringify({
    //parameters
  })
}).then((response)=>{
  console.log(response);
});
}
Run Code Online (Sandbox Code Playgroud)

我假设问题$('meta[name="csrf-token"]').attr('content')是没有发送,因为没有生成令牌。但是,我不知道如何在 React 上生成它。

有没有人有想法?

Edd*_*ove 6

您可以像这样在 Javascript 中回显令牌:

<script> 
    var csrf_token = '<?php echo csrf_token(); ?>'; 
</script>
Run Code Online (Sandbox Code Playgroud)

并从 Javascript 中的任何地方访问它

'X-CSRF-TOKEN': csrf_token
Run Code Online (Sandbox Code Playgroud)

我希望这对你有用。