WordPress Tutorials
wp_ajax and wp_ajax_nopriv: How WordPress AJAX Handlers Work
admin-ajax.php picks one of two hooks based on whether the visitor is logged in, never both, and answers 400 with a bare 0 when nothing is listening. Most broken AJAX handlers fail on one of those two facts.