php:无法获取包含readfile的excel的下载提示

php:无法获取包含readfile的excel的下载提示,php,excel,header,fopen,readfile,Php,Excel,Header,Fopen,Readfile,我已经搜索了这里的所有站点和许多其他站点,但找不到解决这样一个众所周知的问题的方法。我无法得到下载带有php的readfile的excel文件的提示。我也尝试过fopen、print(fread)和fclose组合,但这也不起作用。 请求url是https。当它是http时,我收到一个提示: $path=$_SERVER['DOCUMENT_ROOT'].'/uploads/'.$legit; header('Content-Description: File Transfer');

我已经搜索了这里的所有站点和许多其他站点,但找不到解决这样一个众所周知的问题的方法。我无法得到下载带有php的readfile的excel文件的提示。我也尝试过fopen、print(fread)和fclose组合,但这也不起作用。 请求url是https。当它是http时,我收到一个提示:

 $path=$_SERVER['DOCUMENT_ROOT'].'/uploads/'.$legit;  
 header('Content-Description: File Transfer');  
 header('Content-Transfer-Encoding: binary');
 header('Accept-Ranges: bytes'); 
 header("Content-Disposition: attachment; filename='file.xls'");                                                       
 header('Content-Type: application/vnd.ms-excel');
 header('Content-Length: ' . filesize(\$path));
 header('Cache-Control: must-revalidate');
 header('Pragma: public');
 header('Expires: 0');
 ob_clean();
 readfile($path);
 exit;
  /*   IF ($file = FOPEN($path, 'rb')) {
   WHILE(!FEOF($file) and (CONNECTION_STATUS()==0)) {
     PRINT(FREAD($file, 1024*8));
 FLUSH();
     }
   FCLOSE($file);
    }
  RETURN((CONNECTION_STATUS()==0) and !CONNECTION_ABORTED());
   exit;
       }    */
请求、响应标题在firebug中都显示良好,但没有提示

我的客户端头随dojo/request API一起发送:

  var args={
             headers :{
                        'Content-Type' :'application/x-www-form-urlencoded',
                        'Accept' :'application/vnd.ms-excel',
                        'X-Requested-With':'XMLHttpRequest'
                            },
                            method:'GET',
                            timeout:10000
                        }
   var deferred=request.get(url,args);//the url is https it worked with http

有什么办法解决这个问题吗

如果您使用AJAX请求请求数据,响应将在后台透明地返回到AJAX进程。您必须将当前页面的主URL重定向到文件下载URL,才能启动文件下载过程。

如果您执行AJAX请求,浏览器不会提供下载对话框。就是这么简单。我想知道你为什么会这么认为。我将onclick事件处理程序更改为location.href=。。。但昨天在我调用ajax之前,我在使用这种处理进行编码时出现了错误。我只是认为ajax可以工作。无论如何,谢谢你。