Я пытаюсь создать форму загрузки на основе ajax с индикатором выполнения. Это мой код (часть загрузки):
$xhr = new XMLHttpRequest();
$xhr.upload.addEventListener("progress",
function(e) {
if (e.lengthComputable) {
$progress = (e.loaded / e.total) * 100;
$('#file-progress').css('width', $progressWidth * (e.loaded / e.total));
$('#percentage').html($progress.toFixed(2) + '%');
} else {
alert('Y U NO WORK?');
}
}
, false);
$xhr.onreadystatechange = function(e){
if($xhr.readyState == 4) {
//i'll add this later
}
};
$xhr.open('POST', 'handler.php', true);
var $data = new FormData();
$data.append('file', $file.files[0]);
$xhr.send($data);
Все работает в Chrome (индикатор выполнения и загрузка файла), но в Firefox работает только загрузка файла без индикатора выполнения. Нет ошибок, ничего. Firefox игнорирует слушателя прогресса, и я не могу понять почему, потому что, поскольку я прочитал, Firefox должен поддерживать XMLHttpRequest уровень 2.