In addition to the answer given by friend Paul has another solution that maybe few people know about - you can rewrite the global $ .ajax, $ .get, $ .post method using $ .ajaxSetup:
$.ajaxSetup({
cache: true,
localCache: false,
cacheTTL: 8760, // 1 ano
error: function(e, x, settings, exception) {
console.log(e, 'e');
console.log(x, 'x');
console.log(settings, 'settings');
console.log(exception, 'exception');
if (e.statusText !== "abort") {
var message;
var statusErrorMap = {
'400': "O servidor recebeu sua requisição, mas o conteúdo da resposta é inválido.",
'401': "Acesso negado.",
'403': "Recurso proibido - não pode ser acesso",
'404': "Conteúdo não encontrado",
'405': "Requisição de troca de domínio não permitido",
'500': "Erro interno do servidor.",
'503': "Serviço indisponível"
};
if (e.status) {
message = statusErrorMap[e.status];
if (!message) {
message = "Erro desconhecido - Cod: " + e.status;
}
} else if (exception === 'parsererror') {
message = "Erro. Falha na solicitação de análise JSON.";
} else if (exception === 'timeout') {
message = "Tempo limite esgotado.";
} else if (exception === 'abort') {
message = "Requisição aborteda pelo servidor";
} else {
message = "Erro desconhecido.";
}
notify('error', 'Falha de comunicação', message);
}
}
});