最終的に解決策を見つけました:
誰かがこの問題を抱えている場合は、これを beforefilter に入れてください。
$this->Security->unlockedActions = array('givestar');
ライブラリを Cake 2.3 に更新します。
問題:
ajax 呼び出しで私をブラックホール化する SECURITY コンポーネントに苦労しています。
変数 ID = 1;
$.ajax({
type: "post",
url: "/messages/givestar/",
data: {"id" : id},
dataType: "json"
});
コントローラーのIDを送信して、id = idのメッセージを更新しようとしているだけです
しかし、セキュリティコンポーネントは、すべての ajax 呼び出しで私をブラックホール化しています。
セキュリティコンポーネントを有効にして動作させる方法を知っている人はいますか??
ありがとう!
あなたは素晴らしいです!
-トム
提案????
UPDATE2 いくつかのテストの後、ブラックホールから AUTH エラーが発生しました。
From Book:
‘auth’ Indicates a form validation error, or a controller/action mismatch error.
すべての ACO ノードを再確認しましたが、問題ありません。私は ajax 呼び出しでセキュリティ コンポーネントからの FORM VALIDATION ERROR に頼っています。
アップデート:
AppController.php
public $components = array(
'Acl',
'Auth',
'Session',
'Security',
'Cookie'
);
public function beforeFilter() {
$this->Security->blackHoleCallback = 'blackhole';
}
public function blackhole($type) {
$this->Session->setFlash(__('ERROR: %s',$type), 'flash/error');
}
MessagesController.php
public $components = array('RequestHandler');
public function beforeFilter() {
parent::beforeFilter();
}
public function givestar() {
$this->autoRender = false;
if ($this->request->is('ajax')) {
echo 'Working';
}
return;
}