#6289: Problem with fake redirect of Ajax request under admin section
    Reporter:  vkosinets   |          Type:  Bug       
      Status:  new         |      Priority:  Medium    
   Milestone:  1.2.x.x     |     Component:  Components
     Version:  1.2 Final   |      Severity:  Normal    
    Keywords:              |   Php_version:  PHP 5     
Cake_version:  |  
 Cake version: Stable

 I'm trying to create Ajax request to admin action "admin_delete".
 I use the following JS code to perform the request:

 function initPage() {
         new Ajax.Request('/admin/operators/delete/58', {
                 onSuccess: function(transport){
                         var response = transport.responseText;
                         if (response) {
                 onFailure: function(){ alert('Something went wrong...') }

 Event.observe(window, 'load', initPage);

 Inside the action I'm trying to use $this->redirect method of the
 Controller class.
 The code is below:

 function admin_delete($id = null) {
         $this->autoRender = false;
         if (!empty($id)) {
         $this->redirect(array('action' => 'default'), null, true);

 Also I applied the following routes to my app:

 Router::connect('/', array('controller' => 'pages', 'action' => 'display',
 Router::connect('/admin', array('controller' => 'operator', 'action' =>
 'default', 'admin' => 1));
 Router::connect('/admin/:controller', array('action' => 'default', 'admin'
 => 1));
 Router::connect('/pages/*', array('controller' => 'pages', 'action' =>

 I receive error message from Cake (list of warnings in dispatch.php).

 I expected that the Ajax request will be "redirected" using specific
 Cake's logic for redirecting Ajax request.

 I investigated the problem and found that the redirect for Ajax do not add
 admin_ prefix to the action.

 For myself I resolved this problem in the following way.
 Path: /cake/libs/controller/components/request_handler.php
 Method name: beforeRedirect

 I added the following line:

 $url = Router::url($url);

 before the line:

 echo $this->requestAction($url, array('return'));

Ticket URL: <https://trac.cakephp.org/ticket/6289>
CakePHP : The Rapid Development Framework for PHP <https://trac.cakephp.org/>
Cake is a rapid development framework for PHP which uses commonly known design 
patterns like ActiveRecord, Association Data Mapping, Front Controller and MVC. 
Our primary goal is to provide a structured framework that enables PHP users at 
all levels to rapidly develop robust web applications, without any loss to 
You received this message because you are subscribed to the Google Groups 
"tickets cakephp" group.
To post to this group, send email to tickets-cakephp@googlegroups.com
To unsubscribe from this group, send email to 
For more options, visit this group at 

  • [CakePHP : The Rapid Dev... CakePHP : The Rapid Development Framework for PHP

Reply via email to