我在AngularJs中有一个用于前端的应用程序,在Laravel中有一个用于后端的应用程序,在我的前端中,我向api发送了一些请求,并希望将这些数据返回到一个csv文件中,该文件会自动下载。
这就是我在api上所做的:
public function exportToCsv(Request $request)
{
//$helper = new Helper();
$csv_data = json_decode($request->getcontent(), true);
$headers = [
'Cache-Control' => 'must-revalidate, post-check=0, pre-check=0',
'Content-type' => 'text/csv',
'Content-Disposition' => 'attachment; filename=legend.csv',
'Expires' => '0',
'Pragma' => 'public'
];
$callback = function () use ($csv_data) {
$FH = fopen('php://output', 'w');
foreach ($csv_data as $row) {
fputcsv($FH, $row);
}
fclose($FH);
};
//return Response::stream($callback, 200, $headers);
return response()->download($callback, 200, $headers);
}
我也尝试使用流而不是下载,但是对于这两种解决方案,它都无法工作。
console.log未定义时,我的角度应用程序中的结果是“未定义”,但是如果我在“网络”选项卡中签到,结果就是创建一个csvfile所需的数据(我的所有变量都用逗号分隔),我在做什么错了吗?