Client side AJAX abstraction