无法使用Google Chrome从laravel响应下载简单的CSV流


Cannot Download simple CSV stream from laravel response using Google Chrome

当我在Safari/FFirefox中使用/test-csv路由时,我可以下载一行csv文件。但当我在Chrome中尝试时,控制台的"网络"选项卡上会显示"加载响应数据失败"。

*edit*

重要的新细节:它确实可以在Windows电脑上的Chrome中工作,但不能在我的Macbook Pro 上工作

*edit*

我已经尝试了Content-TypeContent-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;
    });

@Bogdan的评论让我意识到问题一定出在我在Chrome中的安装/设置中。

我关闭了扩展,卸载并重新安装了chrome。它现在正在按预期工作。

如果@bogdan想发布他的评论/建议作为答案,我会将其标记为已接受的答案。