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:/";
}