проблема загрузки Excel через XMLHttpRequest - PullRequest
0 голосов
/ 21 октября 2018

У меня есть кнопка для загрузки листа 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).Это происходит только для живого сервера.Я знаю, что что-то не так с живыми серверными расширениями или что-то в этом роде.Пожалуйста, помогите мне

...