在 React 中保存 php 生成 excel

Save php generated excel in react

我正在使用 laravel excel 包来生成 xls 文件。当我发送获取请求时,我可以在我的响应中看到 excel 文件(随机字符),但是没有提示保存它(我猜反应会在前端阻止它)。什么是正确的实施方式?

React onclick 侦听器:

function handleClick(e) {
  e.preventDefault();
  $.get('excel', function(data) {
    //alert(data);
  });
}

Laravel 控制器:

public function generateExcel()
{
    return Excel::create('Filename', function($excel) {
        $excel->sheet('Sheetname', function($sheet) {
            // Sheet manipulation
        });
     })->download('xls');
}

是的,React 正在阻止您的下载。出现下载提示是因为 HTTP headers。所以,我猜你有一个 laravel url 适合你的 xls 像 /laravel/get/xls 你应该有。

<a href="/laravel/get/xls" target="_blank">Get Xls</a>

这样您将打开一个新选项卡,其中 http headers 将提示下载。