Geralmente, é o balanceador de carga front-end que envia o erro 503 Serviço indisponível se o servidor da Web real estiver inativo. Se você não tiver um balanceador de carga e o servidor estiver desativado, ou se o balanceador de carga estiver inoperante, o cliente receberá um Tempo limite de conexão . Se o servidor estiver ativo, mas o Apache não estiver iniciado, o cliente receberá Conexão recusada .
No servidor desativado, a própria chamada AJAX retornará um erro.
response = url.open("http://...");
if (response == NULL) { /* handle Connection timeout / Conn refused */ }
No caso 503, sua chamada AJAX realmente realiza uma solicitação HTTP, exceto que o código de erro diz que houve um problema. Algo como:
response = url.open("http://...");
if (response.code == 503) { /* handle service unavailable */ }
Espero que ajude:)