有没有办法从blackhole回调发送CakeResponse

时间:2013-11-24 01:58:23

标签: ajax cakephp

我正在努力使ajax请求更加用户友好。这是一种使用可以在一段时间内重用的令牌的场景。但是,当用户在一段时间内处于非活动状态并尝试使用该表单时,用户将观察到ajax无法正常工作但不知道为什么。我要做的就是显示信息。

使用我的测试代码,执行return new CakeResponse似乎在blackhole中返回true,因此$result为真,尽管不应触发用户编辑

public function beforeFilter() {
    $this->Security->blackHoleCallback = 'blackhole';
}
public function blackhole($type) {
    if ($this->request->is('ajax')) {
        $this->log('blackhole here','debug');
        return new CakeResponse(array('body'=> json_encode(array('data'=>'The request has been blackholed')),'status'=>500));
    }else{
        $this->log('blackhole there','debug');
        return new CakeResponse(array('body'=> json_encode(array('data'=>'The request has been blackholed')),'status'=>500));
    }
}

在userapp中

public function edit() {
    $userId=$this->Auth->user('id');
    if (empty($this->request->data)) {
        $this->request->data = $this->User->read(null, $userId);
    }
    if ($this->request->is('ajax')) {
        if($result = $this->{$this->modelClass}->edit($userId, $this->request->data)){
            $this->Session->write('Auth', $this->User->read(null, $userId));
            return new CakeResponse(array('body'=> json_encode(array('data'=>'saved')),'status'=>200));
        }else{
            return new CakeResponse(array('body'=> json_encode(array('data'=>'error')),'status'=>500));
        }
    }
}

进展1:

未解决,可能需要使用事件处理程序或异常,尽管它会有些复杂。在改进其他插件功能时仍在思考。

0 个答案:

没有答案