提问者:小点点

在CakePHP中尝试从另一个模型中删除一个模型时获取CSRF错误


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

然而,当一个视图属于另一个视图时,使用删除后链接删除一个模型似乎会引发CSRF错误。

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

编辑:添加代码。

在视图中发布链接(在本例中为“我的练习模型”的索引视图):

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'));
    }
}

共1个答案

匿名用户

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

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