/**
* Handles (fakes) redirects for Ajax requests using requestAction()
*
* @param Event $event The Controller.beforeRedirect event.
* @param string|array $url A string or array containing the redirect location
* @param \Cake\Network\Response $response The response object.
* @return void
*/
public function beforeRedirect(Event $event, $url, Response $response)
{
$request = $this->request;
if (!$request->is('ajax')) {
return;
}
if (empty($url)) {
return;
}
if (is_array($url)) {
$url = Router::url($url + ['_base' => false]);
}
$controller = $event->subject();
$response->body($controller->requestAction($url, ['return', 'bare' => false, 'environment' => ['REQUEST_METHOD' => 'GET']]));
$response->send();
$response->stop();
}