【发布时间】:2013-08-23 19:56:05
【问题描述】:
我的视图使用 jQuery 将 POST 数据发送到我的控制器,但它失败了,我收到以下错误:
The request has been black-holed
The requested address'/settings/submit_bank_info' was not found on this server.
我可以让它工作的唯一方法是一起删除该控制器中的安全性。
这是相关控制器的前置过滤器
public function beforeFilter() {
parent::beforeFilter();
$this->Auth->allow('help','submit_bank_info');
$this->Auth->authorize = 'Controller';
}
如果在 cake 的文档中看到这个
使用安全组件时,您必须使用 FormHelper 创建您的表格。此外,您不得覆盖任何 字段的“名称”属性。安全组件寻找某些 由 FormHelper 创建和管理的指标(尤其是 在 create() 和 end() 中创建的那些。动态改变字段 在 POST 请求中提交(例如禁用、删除或 通过 JavaScript 创建新字段)可能会触发 请求的黑洞。查看 $validatePost 或 $disabledFields 配置参数。
我使用的是 2.3.8 版本。有什么方法可以让我为该操作禁用它,以便我可以为其他操作保留安全组件?
【问题讨论】:
-
/settings/help 或 /help 有效吗?
-
是的,但这些不是基于 javascript/jquery 的表单。它们是使用表单助手构建的。出于几个原因,我不得不将 javascript/jquery 用于“submit_bank_info”。我正在使用平衡支付卡处理。