2

アプリケーションで ajax を使用して関数を呼び出そうとしています。問題は、cakephp の beforeFilter 関数で関数を呼び出したくないことです。

$.ajax({
    dataType: 'json',
    url: '/users/add/'+id,
    success: function(data){

    }
});

public function add($id = NULL)
{
   echo "test";
   die;
}

ajax 呼び出しを使用するたびに、cakephp は beforeFilter 関数をロードします。

beforeFilter 関数をバイパスする方法はありますか?

ありがとう。

4

3 に答える 3

2

あなたがやろうとしていることを実装するより良い方法はこれです:

function beforeFilter() {
  if (in_array($this->action, array('list', 'protected', 'actions',
'here')) {
    // Do your authentication
  }
}
于 2013-05-11T11:10:37.010 に答える
0

現在のリクエストが beforeFilter 内の AJAX 経由で行われたかどうかを確認するだけです。

public function beforeFilter()
{
     if ($this->request->is('ajax')) {
         return;
     }

     // rest of your code
}

ノート

これは、コントローラーにアタッチされたコンポーネントの beforeFilter() を無効にしませ

于 2013-05-11T12:08:24.733 に答える