2017-07-15 5 views
0

を有効にしてCakePHPの3.4にAJAXを経由してフォームを送信する、crsfとセキュリティコンポーネントは

を助けが必要私はcrsfおよびセキュリティコンポーネントはアプリケーションで有効になっている間、処理のためにコントローラにAJAXを経由して、フォームを送信できるようにしたいですコントローラ(cakephp 3.4)。私が得ることができるすべての助けを感謝します。おかげであなたは頭の要求を介して第1 CSRFトークンを送信する必要がAJAXリクエストを送信するために

+0

。あなたはあなたのAjaxリクエストに隠されたフィールドを含めてみましたか?それがうまくいくかどうかはわかりませんが、試してみる価値はあります。 – systematical

+0

この回答をお試しください[AJAXとCakePHPを使用してCSRFトークンをチェックする方法3](https://stackoverflow.com/questions/33994845/how-to-check-csrf-token-using-ajax-and-cakephp-3-when -user-not-not-logged-in/35238944#35238944) CSRFトークンはcsrfTokenという名前のクッキーで利用できるので、javascriptでそのトークンを読み取り、AJAXリクエストのX-CSRFトークンヘッダーを設定します。 CsrfCompomentはチェックを行います。 – eclaude

答えて

0

あなたはjavascript用のクッキーリーダーを作成したり、使用する必要がドキュメントに指定された(link

として(のような: js-cookie

これはjquery AJAX呼び出しとjs-cookieと例です。私は、これらのコンポーネントだけで隠しフィールドを作成すると思います

$.ajax({ 
    url: '<?php echo $this->Url->build(['controller' => 'Foo', 'action' => 'bar'])?>', 
    beforeSend: function(xhr){ 
     xhr.setRequestHeader('X-CSRF-Token', Cookies.get('csrfToken')); 
    } 
}); 
関連する問題