1

所以在一个模型的索引中,我有一个相关模型的列表。在列表中,我包括删除后链接。

但是,似乎在属于另一个视图的视图中使用删除后链接删除一个模型会引发 CSRF 错误。

这可能只是 Cake 的 Security 组件的工作方式,但有没有办法解决这个问题(不影响安全措施)?

编辑:添加代码。

在视图中发布链接(在这种情况下,我的练习模型的索引视图):

echo $this->Form->postLink('Delete', array('controller' => 'folders', 'action' => 'delete', $key), array('class' => 'delete', 'confirm' => 'Are you sure? This will also delete all associated exercises.'));

文件夹控制器中的删除操作:

public function delete($id) {
    if ($this->request->is('get')) {
        throw new MethodNotAllowedException();
    }
    if ($this->Folder->delete()) {
        $this->Session->setFlash('Folder '.$id.' has been deleted.', 'default', array('class' => 'success'));
        $this->redirect(array('controller' => 'exercises', 'action' => 'index'));
    }
}
4

1 回答 1

1

CakePHP 安全组件允许您指定允许哪些控制器和/或操作向您的操作发送请求。

阅读这部分文档限制跨控制器通信

于 2013-04-11T18:36:52.720 回答