I am generating excel file in PHP using PHPSpreadsheet library. When I directly call the url 'http://10.150.18.22/ppc/dicreport.php?report_date=2022-10-07&report_type=Daily_Report' excel file gets generated successfully. But when same url is called through AJAX call,
following output is generated on browser console.
Ajax Call:
<script>
$("#generateReportForm").on("submit", function (e) {
e.preventDefault();
var report_date=$('#report_date').val();
var report_type=$('#report_type').val();
console.log(report_date);
console.log(report_type);
$.ajax({
url: "dicreport.php?report_date="+report_date+"&report_type="+report_type,
type: "GET",
data: $("#generateReportForm").serialize(),
success: function (response) {
console.log(response);
},
});
});
</script>
dicreport.php
<?php
$REPORT_DATE=$_GET['report_date'];
$REPORT_TYPE=$_GET['report_type'];
require 'vendor/autoload.php';
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\IOFactory;
$spreadsheet = new Spreadsheet();
$sheet = $spreadsheet->getActiveSheet();
$spreadsheet->getDefaultStyle()
->getFont()
->setName('Arial')
->setSize(10);
$file=$REPORT_TYPE."_".$REPORT_DATE.".xlsx";
header('Content-disposition: attachment; filename='.$file);
header('Content-type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
$writer = IOFactory::createWriter($spreadsheet,'Xlsx');
$writer->save('php://output');
?>