I'm sorry, but some of ungestaltbar's comments are not fully correct.
Couldn't comment above anymore, but it's almost an answer.
When using admin-ajax.php for the front-end ...
One needs to hook BOTH, wp_ajax_(action) & wp_ajax_nopriv_(action) on front- AND back-end, else it won't work.
The reason why you get the whole page returned might be that the XHR call is being intercepted by rewrite rules - WP is a single point of access application.
The syntax is about like that:
add_action('wp_ajax_nopriv_conversion', array(&$this, 'do_conversion'));
add_action('wp_ajax_conversion', array(&$this, 'do_conversion'));
This might sound not too logical, but I'm pretty sure with that (recently used in a project).