When calling AJAX from Javascript, callbacks of ‘success’ and ‘error’ are typically supported. Your call might look something like this (I happen to be using Angular here):
$http( request ).success( function( response ) {
console.log( 'SUCCESS: ' + response );
}).error( function( response ) {
console.log( 'ERROR: ' + response );
});
Your server code, possibly written in PHP, might look something like this:
function some_code_here()
{
echo 'everything is cool';
exit;
}
No matter what, the ‘success’ callback is always triggered. So, how would you trigger the ‘error’ callback? Hmm. This had me reeling for a bit. Then found that this works:
function some_code_here()
{
$whatever = true;
if ( $whatever )
{
header( 'HTTP/1.1 500 Internal Server Error' );
echo 'some error happened';
exit;
}
}
You can return any error value that you see on this page:
http://en.wikipedia.org/wiki/List_of_HTTP_status_codes#4xx_Client_Error
The process of forcing an error is completely not intuitive, which is why I’ve posted it here for future reference. Hope it helps you too.