Таких универсальных решений полно, для примера можно взять любой фреймворк, например вот
http://js-core.googlecode.com/files/...-ajax-0.2.5.js AJAX-модуль моего фреймворка, там самый минимум, поэтому в качестве примера сгодится

Входящие параметры success и error как раз и есть те самые callback-функции, которые запускаются после успешного выполнения запроса или в результате ошибки, и в них передается ответ от сервера.