进度条上的AJAX请求不使用PHP文件

时间:2013-12-25 22:48:53

标签: php jquery ajax

我想在发出ajax请求时显示进度条。

$.ajax({
url: 'http://www.domain.de/test.html',
xhrFields: {
    onprogress: function(e) {
        if(e.lengthComputable) {
            _this.find('.process-loading').attr('style', 'width:' + (e.loaded / e.total * 100) + '%');
        }
    },
}
});

只要我使用*.html个文件或*.txt文件或图片,效果就会很好。但是当我想上传*.php文件时,“lengthComputable”为false,“total”为零。

为什么它不适用于这种文件?我可以改变什么,或者我必须以某种方式允许PHP文件?

1 个答案:

答案 0 :(得分:0)

这是因为PHP脚本输出动态内容,输出的内容长度是一个变量,要解决此问题,您需要在PHP脚本中设置正确的Content-Length标头,尝试将以下代码段放入PHP中文件:

<?php
  ob_start();

  //** Put your own PHP logic in this place**

   header('Content-Length: '.ob_get_length());
   header('Accept-Ranges: bytes');
   ob_end_flush();
?>

希望这有帮助