Jump to content
Fórum Script Brasil
  • 0

Iniciar download com retorno de Ajax automaticamente


Ricardo Machado

Question

Olá, estou desenvolvendo uma aplicação SIG com java web; que tem entre suas característica o uso de Ajax para fazer requisições no servidor Java. Existe uma funcionalidade de plotar gráficos em que é feita uma requisição (via Ajax) para servidor o qual retorna um JSONArray para ser processado na "view" pelo JavaScript e então gerar o gráfico. Até este ponto está tudo ok, o detalhe, é que eu pretendo reutilizar esse retorno para uma segunda funcionalidade, pois após a plotagem dos gráficos existe a possibilidade de exportar (criar e iniciar o download de um arquivo Excel) esses dados para o usuário. A primeira ideia era fazer uma requisição via GET para o servidor e este retornar o arquivo e então inicia o download automaticamente. Neste caso eu tenho um problema pois não consigo enviar como parâmetro JSONArray que pode ter grande quantidade de dados e o GET "até onde sei" possui uma limitação no tamanho de seus parâmetros. Via POST já não tenho esse problema de enviar meus parâmetros, porém, ao receber meu retorno (um arquvo .xls) não consigo iniciar o download do mesmo para o usuário. Segue trecho do código abaixo, qualquer sugestão é bem vinda.

    $("#btnExportarResultados").click(function() {        
        $.post("/SIG/exportar_dados", {          
            dados: '${resultados}'
        }, function(data, status) {
             //AQUI NÃO CONSIGO INICIAR O DOWNLOAD AUTOMATICAMENTE
        });
    });

@RequestMapping(value = {"/exportar_dados"}, method = RequestMethod.POST)          
    public String exportarDados(@RequestParam(value = "dados", required = true, defaultValue = "0") JSONArray dados, HttpServletRequest request, HttpServletResponse response) throws WriteException, IOException, RowsExceededException, JSONException {
    
 this.iniciaDownload(response, dados);        
 return "redirect:/";
}

Link to comment
Share on other sites

0 answers to this question

Recommended Posts

There have been no answers to this question yet

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.1k
    • Total Posts
      651.8k
×
×
  • Create New...