Ajax Controller (AC)

This project is not covered by Drupal’s security advisory policy.

This small module provides a simple API and should not be installed unless required by another module, or for your personal development.


  • Route XMLHttpRequests to mapped callbacks
  • Option to gzip output
  • Display status and error messages based on request status
  • Message display duration
  • Output messages to specific elements, or the default of #ac-messages
  • Response headers
  • Ability to alter responses via hook_js_response_alter()
  • Lock arbitrary requests to a set duration


This example utilizes AC.request() to delete a piece of content.
The URI of example.com/js/example/delete will call example_js_delete().

       // example.js      
       AC.request('example', 'delete', { 'content_id' : 1 }, function(response){
          // AC.checkResponse() will return TRUE when the response was a success, and also manages 
          // functionality such as displaying messages.
          if (AC.checkResponse(response)){
       // example.module
       function example_js_delete(&$state, $args) {  
         // Lock the user for 10 seconds regardless of success, to prevent arbitrary requests
         $state['lock'] = 10;

         // Optionally change the message display wrapper
         $state['message_wrapper'] = '#content #message-wrapper';
         if ($cid = $args['content_id']){  
           if (example_delete($cid)){
             $state['message'] = t('Request complete');
           else {
             // Tell AC that the request was a failure, and display the error message
             $state['status'] = AC_STATUS_ERROR;
             $state['message'] = t('Failed to delete !cid.', array('!cid' => $cid));

This module is maintained by Pagebuild. Originally created by Vision Media.

Ajax Controller (AC)项目的Drush安装命令:复制到剪贴板