[RESOLVIDO] Vraptor + AJAX - Problemas no retorno da requisição
8 respostas
T
talita.h
Boa tarde!
Tenho uma tela modal com um form. Faço o submit deste form com ajax, e no meu controller faço validações nos dados informados. Até aí tudo ok, o método no controller recebe os dados corretamente, e faz as validações corretamente.
O problema ocorre no retorno. Gostaria de apresentar o retorno deste método na própria modal, em uma div, mas não consigo fazer isto. A página sempre é atualizada, e desta forma carrega o jsp da janela modal na página inteira (e acaba ficando inclusive sem formatação).
Meu código está assim:
Controller
@Post("/usuario")publicvoidcadastrar(Usuariousuario){try{business.incluir(usuario);result.use(Results.http()).body("gravou usuário");}catch(BusinessExceptione){result.use(Results.http()).body("usuário já existe");}}
Lucas, este “result.use(Results.http()).body(”");" está correto?
@Post("/usuario")publicvoidcadastrar(Usuariousuario){try{business.incluir(usuario);result.use(Results.http()).body("gravou usuário");}catch(BusinessExceptione){result.use(Results.http()).body("usuário já existe");}}
Tenho a impressão que isto é que está causando o problema, mas não sei qual seria a forma correta de fazer este retorno.
Lucas_Cavalcanti
o que isso faz é que o corpo da requisição seja o texto que vc passou… isso não influencia na mudança de página. É problema no javascript.
Vc testou a versão com o .submit() do form ao invés do .click() do botao?
Continua redirecionando para página em branco, apenas com a mensagem de retorno.
T
talita.h
Resolvi testar o plugin indicado (em http://www.malsup.com/jquery/form/), e já consegui o retorno sem o refresh. Ainda não está aparecendo na div, mas creio que isto seja apenas algum detalhe. Quando conseguir solucionar, posto todo o código aqui.
Obrigada!
T
talita.h
Segue solução final:
Controller
@Post("/usuario")publicvoidcadastrar(Usuariousuario){try{business.incluir(usuario);result.use(Results.http()).body("gravou usuário");}catch(BusinessExceptione){result.use(Results.http()).body("usuário já existe");}}