[RESOLVIDO] VRaptor3 + Redirect p/ Download + Refresh

Salve Jedis do GUJ,

Tenho uma dúvida besta com VRaptor3. Acho que vcs vão matar em 0.23s rs… Lá vai…

Gostaria de fazer esse fluxo:

  • na página o usuário clica no link q aciona um js.
  • js faz post via ajax
  • caso não de erro, faz subit de um form pra inicia o download
  • atualiza a pagina q estou *<-- é isso que não estou conseguindo fazer…

Ok, explicando resumidamente em pseudo-código:

1 - na controler eu tenho 2 métodos

[code]public class Controller {

public void buy() {

try {

 this.service.buy();

 result.nothing();

} catch (Exception e) {

   this.errorsToJson(e);

}
}

public Download download() {

  return new Download();

}
}[/code] 2 - agora, ao click de um botão, eu quero enviar pro buy via ajax. Caso não de erros, dou um submit no form q tem a action pra ‘/controller/download’. Ao mesmo tempo, quero atualizar a página atual (para atualizar as informações que estão nela).

[code]function buy() {

$.post($(buyForm)), function(data) {

    if(data.errors) {

        alert(data.errros);

    } else 

          if(paymentType == 'BANK_BILL') {

                $(downloadForm).submit();
           }

           location.reload(true);
     }

}), ‘json’);
}[/code] O problema é que location.reload(true) acontece muito rápido e não deixar o download ser feito.

Alguém tem alguma sugestão de como posso contornar essa situação? Achei que colocar um timer pra retardar o disparo do location.reload() fica meio feio. O q vcs acham?

Valeu pessoal

Salve ninjas do GUJ,

Mudei o fluxo e resolvi! Agora ficou:

//faz submit do form (sem ajax)
//se erro, encaminha de volta pra página e exibe a lista de erros
//se conseguiu comprar, volta pra página incluindo a variavel que é pra fazer download
//na página, se eh pra fazer download, faz submit pra download

É isso que dá ficar horas e horas codando sem descansar! hahahah!!!

Valeuws turma, e desculpem pela cabacice… ;D