使用客户端,我向Laravel发送POST请求以将文件返回到浏览器:
$headers = [
'Content-Type' => 'application/vnd.ms-excel',
'Content-Disposition' => "attachment; filename='Report.xls'"
];
return response()->download(storage_path('app/'.$path.$filename), $filename, $headers);
它会返回二进制文件作为响应:
响应标题为:
答案 0 :(得分:1)
尝试使用:
return Storage::download('file.jpg', $name, $headers);
参考:https://laravel.com/docs/5.8/filesystem#downloading-files
编辑1:
可能的解决方案:
创建一条路线来获取xls文档(使用GET http方法),例如他的名字,该人返回:
return Storage::download('file.jpg', $name, $headers);
执行POST请求,返回204
http代码并带有Location
标头。
return response()->header('Location', $url)
调用AJAX成功事件时,请执行以下操作:
success: function(data, textStatus, request) {
window.open(request.getResponseHeader('Location'), '_blank');
}