Невозможно загрузить простой поток CSV из ответа laravel с помощью Google Chrome

Когда я иду /test-csv маршрут в Safari / Firefox, я могу скачать однострочный файл CSV. Но когда я пытаюсь сделать это в Chrome, на вкладке «Сеть» консоли появляется сообщение «Не удалось загрузить данные ответа».

*edit*

ВАЖНАЯ НОВАЯ ПОДРОБНОСТЬ: он работает в Chrome на компьютере с Windows, но не на моем Macbook Pro

*edit*

Я попробовал несколько вариантов Content-Type а также Content-Disposition Заголовки безрезультатны.

Когда я опускаю все заголовки, я получаю в браузере только строку: "id,name,email" (без загрузки).

Нужен ли мне какой-то специальный заголовок для Chrome, чтобы я мог принудительно загрузить эти потоковые данные?

use Symfony\Component\HttpFoundation\StreamedResponse;

Route::get('test-csv', function(){

$response = new StreamedResponse(function(){
// Open output stream
$handle = fopen('php://output', 'w');
fputcsv($handle, [
'id',
'name',
'email'
]);
fclose($handle);

}, 200, [
'Content-Type' => 'text/csv',
'Content-Disposition' => 'attachment;filename=export.csv;',
]);


return $response;
});

2

Решение

Комментарий @ Богдана заставил меня понять, что проблема, возможно, была в моей установке / настройках в Chrome.

Я отключил расширения и удалил и переустановил хром. Сейчас работает, как и ожидалось.

Если @bogdan хочет опубликовать свой комментарий / предложение в качестве ответа, я отмечу его как принятый ответ.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]