在我的项目中,我创建了操作 ajax 请求的 AjaxController。
我想输入到 ajax 使用的 url 的用户得到 404 错误。
在 AjaxController.php 我有:

public function initialize() {
    if (!$this->request->isAjax()) {
        return $this->response->redirect('error/show404');
    }
}

(当然我有带有 show404Action 的 ErrorController)

它不起作用。当我在浏览器中输入 example.com/ajax 时,我从 AjaxController 中的 IndexAction 获取内容。如何修复?

最佳答案

请尝试在 beforeExecuteRoute() 中做同样的事情。 Phalcon 的 initialize() 顾名思义,旨在初始化事物。您可以使用调度程序在那里调度,但不应重定向。

您可以查看部分文档 here 。列“可以停止操作吗?”说是否可以返回响应对象以完成请求或 false 以停止评估其他方法并编译 View 。

值得一提的是 beforeExecuteRoute() 每次在调用 action 之前都会执行,因此可能会触发几次,以防您在 action 之间进行转发。

public function beforeExecuteRoute(Event $event, Dispatcher $dispatcher)
{
    if (!$this->request->isAjax()) {
        return $this->response->redirect('error/show404');
    }
}

关于php - PhalconPHP - 在 initialize() 中重定向,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37551617/

10-09 15:55