2017-06-09 11 views
2

Csrfコンポーネントが有効な場合のCakephp3。私はそれをajax呼び出しでどのように使用できますか。 このbeforeSendのajax csrfトークンのパラメータがヘッダーに設定されています。 csrfTokenの値は何ですか。それはcsrfTokenがCakephp 3でajax呼び出しでCSRFトークンを定義する方法。また、いくつかのajax要求でCSRFをオフにする方法

beforeSend: function(xhr){ 
    xhr.setRequestHeader('X-CSRF-Token', csrfToken); 
}, 

が定義されていないエラーに

を与えるとしてもどのように私はいくつかのAJAX呼び出しのためCSRFコンポーネントを無効にすることができます。

答えて

3

CSRFコンポーネントは、要求が(CakePHPの3.4のようまたはgetParam()param()メソッドをオブジェクトを経由して、あなたはそれを得ることができ、_csrfTokenとしてリクエストパラメータに現在のトークンを書き込みます

setRequestHeader('X-CSRF-Token', <?= json_encode($this->request->param('_csrfToken')); ?>); 

CSRFコンポーネントを無効にすることができますそれをコントローラー・イベント・マネージャーから除去します。

public function beforeFilter(\Cake\Event\Event $event) 
{ 
    parent::beforeFilter($event); 

    if ($this->request->param('action') === 'actionXyz') { 
     $this->eventManager()->off($this->Csrf); 
    } 
} 

+0

返信いただきありがとうございます。 :) – ParminderBrar

関連する問題