jQuery: como obter o código de status HTTP no método $ .ajax.error?

Estou usando o jQuery para fazer uma solicitação AJAX. Desejo executar ações diferentes, independentemente de o código de status HTTP ser um erro 400 ou 500. Como posso conseguir isso?

$.ajax({
    type: 'POST',
    url: '/controller/action',
    data: $form.serialize(),
    success: function(data){
        alert('horray! 200 status code!');
    },
    error: function(data){
        //get the status code
        if (code == 400) {
            alert('400 status code! user error');
        }
        if (code == 500) {
            alert('500 status code! server error');
        }
    },
});
Atualizar

@ GeorgeCummins mencionou que "parecia estranho" trabalhar com o corpo de resposta. Esta é a primeira vez que tentei fazer esse tipo de coisa. Minha abordagem não é uma prática recomendada? O que você recomendaria? Criei outra pergunta StackOverflow para isso aqui:Que código de resposta / status devo enviar para uma solicitação AJAX quando houver um erro de validação de usuário / formulário?

questionAnswers(4)

yourAnswerToTheQuestion