Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Problemas com retorno AJAX

<script type="text/javascript">
        $(document).ready(function(){
            $('#btn_busca_f').click(function () {
                var data_ini = $('#data_ini').val();
                var data_fim = $('#data_fim').val();
                var cod_recurso = $('#cod_recurso').val();
                var cod_funcionario = $('#cod_funcionario').val();
                var num_op = $('#num_op').val();
                $.ajax({
                    type: 'post',
                    async: false,
                    url: '/intranet/ExportaFimApontamento',
                    data:{
                        '_token': '{{csrf_token()}}',
                        'data_ini': data_ini, 
                        'data_fim': data_fim, 
                        'cod_recurso': cod_recurso,
                        'cod_funcionario': cod_funcionario,
                        'num_op': num_op
                    },
                    erro: function () {
                        alert('erro');
                    },
                    success: function (data) {
                        return (data);
                        alert('Excel Gerado com Sucesso!');
                    }
                });
            });
        });
    </script>

este script executa uma função no controller onde ele gera um arquivo excel.xls, porem se eu executar a função direto no controler ele funciona, se eu executar com o script ele funciona mas nao gera o arquivo.xls alguem sabe como posso fazer para que ele baixe o arquivo la na função?

3 respostas

Oi Emerson, tudo bom?

Voce ja tentou dar um console log no retorno do ajax? Algo como:

success: function (data) {
                        alert('Excel Gerado com Sucesso!');
            console.log(data);
                        return (data);
                    }

Alem disso, compartilha com a gente a action:

/intranet/ExportaFimApontamento

Porque podemos tomar abordagens diferentes dependendo da configuracao dos headers do response =)

Compartilha com a gente o retorno e action, assim fica mais facil te dar uma solucao mais concreta.

Aguardo retorno.

Abraco

solução!

então... na realidade eu descobri que o ajax so pode ser usado com um retorno de requisição ao usuario... ou seja oque eu estava tentando fazer não iria funcionar. entao guardei os dados de consulta e criei um form hiden na view para exportar estes dados.

Opa, tudo bom emerson?

Na verdade, se voce configurasse os parametros no header do response seria possivel exibir isso com o javascript. Porem realmente e muito mais facil abrir a url no navegador ao inves de processar o blob com javascript e ajax mesmo =)

Fico feliz que tenha resolvido.

Abraco