【发布时间】:2012-08-05 20:20:21
【问题描述】:
终于找到了解决方案:
如果有人遇到此问题,请将其放入您的 beforefilter。
$this->Security->unlockedActions = array('givestar');
并将库更新到 Cake 2.3
问题:
我正在努力解决 SECURITY 组件在我的 ajax 调用中对我造成的影响。
var id = 1;
$.ajax({
type: "post",
url: "/messages/givestar/",
data: {"id" : id},
dataType: "json"
});
我只是尝试发送控制器的 ID 以更新 id=id 的消息
但安全组件在我所有的 ajax 调用中都对我造成了黑洞。
任何人都知道我如何在激活安全组件的情况下使其工作?
谢谢!
你太棒了!
-汤姆
建议????
更新2 经过一些测试后,我从黑洞收到了一个 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;
}
【问题讨论】:
-
安全组件已激活??表示您要加密
id或将其隐藏在ajax 调用中? -
aahhh 我的错。我不是蛋糕 php 人..我使用 Zend 框架 + Jquery。SO 中有很多 Cakephp 专家..你很快就会找到你需要的:)
-
我不想加密任何东西,但安全组件正在保护每个 POST 不被篡改。我已经阅读了有关序列化 ajax 调用和使用 json 来解决这个问题的信息,但我不知道该怎么做......无论如何,谢谢:)
标签: jquery ajax cakephp-2.1