2017-01-31 17 views
0

LaravelのCSRFに関するいくつかの質問を読んだことがありますが、Reactでの使用方法はまだ分かりません。 私の目標は、AJAX呼び出しを行うPOSTフォームを作成することです。React js - Laravel 5:POSTメソッドでcsrf-tokenを使用する

ここに私の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> 
); 
} 

ここには送信機能があります。

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); 
}); 
} 

の問題は、私が想定し、トークンが生成されていないため$('meta[name="csrf-token"]').attr('content')は、送信されていないということです。しかし、Reactでどのように生成できるのか分かりません。

アイデアはありますか?

答えて

0

あなたはこのようにJavaScriptでトークンをエコーすることができます:私はこれがあなたのために働く願ってい

<script> 
    var csrf_token = '<?php echo csrf_token(); ?>'; 
</script> 

どこのJavascript

'X-CSRF-TOKEN': csrf_token 

からアクセス。

関連する問題