我想在发出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文件?
答案 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();
?>
希望这有帮助