protected function _error($message = null, $statusCode = self::REST_STATUS_BAD_REQUEST) { if (is_numeric($statusCode)) { $statusCode = intval($statusCode); } $this->_response->clearAllHeaders()->clearBody(); $this->_response->setHttpResponseCode(intval($statusCode))->setHeader('Content-Type', 'application/json', true); if (!empty($message)) { $this->_response->setBody(json_encode($message)); } $this->_response->sendResponse(); exit; }
public function run(Zend_Controller_Response_Abstract $response = null) { $args = array($this); $this->runCallback(self::CB_BEFORE_RUN, $args); if ($response === null) { $response = new Zend_Controller_Response_Http(); } $this->response = $response; $action = $this->getCurrentAction(); $this->request->setActionName($action); ob_start(); $this->actionRun($action); if ($this->response->isRedirect() && $this->completeRequest->isXmlHttpRequest()) { $url = null; foreach ($response->getHeaders() as $header) { if ($header['name'] == 'Location') { $url = $header['value']; } } $code = $response->getHttpResponseCode(); // change request to ajax response $response->clearAllHeaders(); $response->clearBody(); $response->setHttpResponseCode(200); $response->setHeader("Content-Type", "application/json; charset=UTF-8", true); $response->setBody(Am_Controller::getJson(array('ngrid-redirect' => $url, 'status' => $code))); //throw new Am_Exception_Redirect($url); } else { $response->appendBody(ob_get_clean()); } unset($this->response); return $response; }
/** * Clear all headers, normal and raw * * @return Zym_Controller_Response_Http */ public function clearAllHeaders() { // Clear cookies $this->clearCookies(); return parent::clearAllHeaders(); }