2016-07-06 4 views
0

Привет Я использую класс ответа Laravels для генерации csv следующим образом;Laravel response make csv через ajax

Это работает, если я отправлю форму в соответствии с нормальным. Однако я хочу сделать эту загрузку через ajax, если я сделаю это через ajax следующим образом;

$(document).on('submit', 'form#export', function (e) { 
    e.preventDefault(); 
    var myForm = $(this); 
    data = $(this).serialize(); 

    //var 
    $.ajax({ 
     url: myForm.attr('action'), 
     dataType: 'JSON', 
     data: data, 
     type: myForm.attr('method'), 
     success: function (json) { 
      console.log(json); 
     }, 
     error: function (jqXhr, json, errorThrown) { 
      alert('An unexpected error occured, please try again or contact.'); 
     } 

    }); 
}); 

Теперь это успешно, однако файл не загружается, вместо этого ответ через ajax выглядит следующим образом;

id,username,email,1,user1,[email protected],2,user2,[email protected] 

Любые идеи, как я могу заставить этот файл для загрузки

ответ

0

Создать другой маршрут

1.В функции контроллера для этого маршрута вы возвращаете URL для маршрута, который вы в данный момент ajaxing к нему

2.Измените Аякс функции, чтобы получить этот новый маршрут

3.После Аякс активизирован, он принимает URL в формате CSV в функции успеха ajax вы запускаете загрузку csv с использованием эфира window.location или путем нажатия на скрытую ссылку с атрибутом загрузки