Uma dúvida, estou com um sistema aqui que funciona da seguinte maneira.
Tenho um form que envia os dados para meu controller com um método autentica (/login), o método processa a informação e precisa devolver, para minha página JSP onde está meu código ajax, uma resposta de sucesso ou erro.
Eu estou usando o result para dar a resposta. Meu problema é que o login dando errado ou verdadeiro, ele sempre cai em “success” em meu ajax.
Por parâmetro, o ajax recebe uma página inteira html. Gostaria de saber, como posso passar apenas uma variável de resposta, é possível?
Meu método autentica:
@Post ("/autenticar")
public void autenticar(Usuario usuario)
{
Usuario user = dao.logar(usuario);
if (user != null) {
System.out.print("\nLogado!");
result.include("msg", "success").redirectTo(this).login();
} else {
System.out.print("\nNão logado!");
result.include("msg", "error").redirectTo(this).login();
}
}
Meu ajax:
$.ajax({
type: 'post',
url: '${pageContext.request.contextPath}/autenticar',
data: form,
beforeSend: function(){
alert("init login");
},
success: function(data){
alert("resposta - " + data);
},
error: function(erro){
alert("resposta - " + erro);
}
});
Obrigado.