Это маршрут для моего контроллера и метод:
Route::post('exportarDireccionTodos','MyController@exportarDireccionTodos');
Я звоню по этому маршруту от нажатия кнопки с JavaScript:
$.ajax({
url: baseUrl+'exportarDireccionTodos',
type: 'POST',
data: {'id': optionsChecked},
success: function(response) {
//etc
MyController
имеют этот код:
$delimiter=";";
$array = MyModel::findMany($todos)->toArray();
$filename = "direcciones.csv";
header("Content-Transfer-Encoding: UTF-8");
header('Content-Type: application/csv');
header('Content-Disposition: attachment; filename="'.$filename.'";');
$f = fopen('php://output', 'wb');
foreach ($array as $line) {
fputcsv($f, $line, $delimiter);
}
fclose($f)
return response()->json([
'status' => 'success',
'mensaje' => 'Direcciones exportadas a CSV'
]);
Я отправляю id
на свою модель, затем создаю CSV-файл, но я не могу его скачать, я просто вижу, что он довольно хорошо сделан в инструментах разработчика XHR, например:

Я пробовал с:
header('Content-Type: application/force-download');
header('Content-Type: text/csv');
И с:
return Response::download($f, $filename, $headers); <-- here I got an error, Laravel 5.1 doesnt reconigze Response
то же самое с:
return response()->download($f, $filename);
Всегда происходит одно и то же, CSV создан, но не может загрузить. Я пробовал 2 других способа создания CSV, но он всегда хорошо сгенерирован, но не может быть загружен