Excel通过XMLHttpRequest下载问题

时间:2018-10-21 06:47:00

标签: javascript php download xmlhttprequest phpexcel

我有一个用于下载Excel工作表的按钮。在我的本地开发服务器上可以正常工作,但是在实时服务器上不能正常工作。

jQuery:

 $(document).on('click','.export',function(){
  var request = new XMLHttpRequest();
  request.open('GET', 'module/portal/custom_alerts/export/xlsalert.php?searchID='+$(this).prop('id').split('_')[0]+
                        '&feedbackmode='+$(this).prop('id').split('_')[1], true); 
  request.setRequestHeader('Content-Type', 'application/vnd.ms-excel; charset=utf-8');
  request.setRequestHeader('Content-Type', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
  request.setRequestHeader('Cache-Control','max-age=0');
  request.responseType = 'blob';
  var fileName='customalert.xlsx';
  request.onload = function(e) {
           if (this.status === 200) {
                  var blob = this.response;
                  if(window.navigator.msSaveOrOpenBlob) {
                                    window.navigator.msSaveBlob(blob, fileName);
           }
           else{
                  var downloadLink = window.document.createElement('a');
                  var contentTypeHeader = request.getResponseHeader("Content-Type");
                  downloadLink.href = window.URL.createObjectURL(new Blob([blob], { type: contentTypeHeader }));
                  downloadLink.download = fileName;
                  document.body.appendChild(downloadLink);
                  downloadLink.click();
                  document.body.removeChild(downloadLink);
                  }
              }
            };
         request.send(); 
     });

xlsalert.php

<?php
    -----
        $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007'); 
        ob_end_clean();
        $objWriter->save('php://output');
        exit;       
?>

如果我对此行发表评论$objWriter->save('php://output');,将下载excel,但会弹出警告。在控制台内部,它将显示request.send();-Failed to load resource: the server responded with a status of 500 (Internal Server Error)中存在错误。 这仅在实时服务器上发生。我知道实时服务器扩展或某些问题。请帮助我

0 个答案:

没有答案