[RESOLVIDO] VRaptor3 + Redirect p/ Download + Refresh

1 resposta
rogerio.alcantara

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
public class Controller {

public void buy() {

  try {

     this.service.buy();

     result.nothing();

  } catch (Exception e) {

       this.errorsToJson(e);
  }
}

public Download download() {

      return new Download();
}
}
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).
function buy() {
 
    $.post($(buyForm)), function(data) {

        if(data.errors) {

            alert(data.errros);

        } else 

              if(paymentType == 'BANK_BILL') {

                    $(downloadForm).submit();
               }

               location.reload(true);
         }

   }), 'json');
}
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

1 Resposta

rogerio.alcantara

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

Criado 11 de janeiro de 2012
Ultima resposta 11 de jan. de 2012
Respostas 1
Participantes 1