Adding Ajax Functionality
Module authors wishing to add ajax functionality should target Site.ajax_url
in their JavaScripts. The ajax controller offers a trigger-based framework for responding to ajax requests.
Responding to Ajax Requests
You must provide a unique route action in your ajax GET or POST request in order for your request to be routed to a responder in your module. Adding an ajax_foobarbaz()
trigger function to your module will enable your module to respond to requests sent with a POST action of foobarbaz
or sent to /ajax/?action=foobarbaz.
Your trigger function should return an appropriate response object to your JavaScript on either success or failure. If your function returns false
the routing process will continue, and if no other responders are found, it will conclude with a 404 error.
JSON Responses
Module authors are encouraged to use the helper function json_response()
when responding to ajax requests. json_response()
encodes a response object containing two properties: text
and data
. Authors are encouraged to always populate the text property with a human-readable response message. The data property can contain any arbitrary JSON-encodable data.