Laravel:ajax调用后下载文件

时间:2019-01-08 17:27:13

标签: javascript ajax laravel laravel-5

我正在使用这个库Maatwebsite Excel,我在检查器中看到我有一个响应,但下载从未启动,我对此怎么做的任何想法?

我一直在寻找答案,并且一直对此https://laracasts.com/discuss/channels/laravel/maatwebsite-excel-is-created-but-not-downloading-in-ajax-call-in-laravel-why感到困惑 但这是个电话,所以对我不起作用

我的js

    function ajax_helper (datos) {
    $('#div_cargando').prop('hidden', false)
    $.ajaxSetup({
      type: 'POST',
      url: '/informes/productos',
      headers: {
        'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
      }
    })

    $.ajax({
      data: datos,

      success: function (data) {
        $('#div_cargando').prop('hidden', true)
        **window.location(data)** // not my best try
      }
    })
  }

我的控制器

    public function buscar(Request $request)
    {
        return Excel::download(new ProductosExport($request->empresa_id, $request->caso, $request->id), 'productos.xlsx');
//        dd($request->all());
    }

我的出口管制员

   private $empresa_id;
    private $caso;
    private $id;

    public function __construct($empresa_id, $caso, $id)
    {
        $this->empresa_id = $empresa_id;
        $this->caso = $caso;
        $this->id = $id;
    }

    public function collection()
    {
        $empresa = Empresa::find($this->empresa_id);
        switch ($this->caso) {

            case 1:
                $ids = $this->obtener_id($this->caso, $this->id);

                return $empresa->productos()->select('producto_nombre_id', 'existencias')
                    ->whereIn('producto_nombre_id', $ids)->with('producto_nombre')->get();
                break;
            case 2:
                break;
        }

    }

    private function obtener_id($caso, $id)
    {
        switch ($caso) {
            case 1:
                return Linea::find($id)->productos()->select('id')->get();
                break;
            case 2:
                return Seccion::find($id)->productos()->select('id')->get();
                break;
        }
    }

0 个答案:

没有答案