1个申请。我正在使用 ajax 登录并验证用户。我遇到的问题是 cakephp 2.1 auth 组件。当我手动登录用户时,组件重定向我不想发生,而是将成功代码返回给我的 ajax 请求。有没有办法防止这种默认行为?
问问题
756 次
1 回答
2
AuthComponent 正在调用 Controller::redirect(null, 403)。您可以通过在 AppController 中覆盖 redirect() 来捕获这些:
/**
* Proxy for Controller::redirect() to handle AJAX redirects
*
* @param string $url
* @param int $status
* @param bool $exit
* @return void
*/
public function redirect($url, $status = null, $exit = true) {
// this statement catches not authenticated or not authorized ajax requests
// AuthComponent will call Controller::redirect(null, 403) in those cases.
// with this we're making sure that we return valid JSON responses in all cases
if($this->request->is('ajax') && $url == null && $status == 403) {
$this->response = new CakeResponse(array('code' => 'code'));
$this->response->send();
return $this->_stop();
}
return parent::redirect($url, $status, $exit);
}
于 2013-02-21T08:59:09.423 回答