Javascript XHR Progress仅在开始时激发

Javascript XHR Progress仅在开始时激发,javascript,xmlhttprequest,Javascript,Xmlhttprequest,我有一些代码,设计用于在缩放客户端后自动上传图像。图像上传很好,但是,XHR进度事件不会在第一次之后触发。任何帮助都将不胜感激 注意:我正在上传一个jpg的BLOB,如果有必要的话,我会将其组装并保存在服务器上 这是我的密码: var uploadCameraPhoto = function ( blob, filename, dataUrl ) { var xhr = new XMLHttpRequest(); if ( xhr.upload ) { var form

我有一些代码,设计用于在缩放客户端后自动上传图像。图像上传很好,但是,XHR进度事件不会在第一次之后触发。任何帮助都将不胜感激

注意:我正在上传一个jpg的BLOB,如果有必要的话,我会将其组装并保存在服务器上

这是我的密码:

var uploadCameraPhoto = function ( blob, filename, dataUrl ) {
    var xhr = new XMLHttpRequest();
    if ( xhr.upload ) {
     var formData = new FormData() ;
     formData.append( 'file', blob, filename ) ;

     xhr.upload.onprogress = function(e) {
      console.log(e.loaded + ' / ' + e.total);
     } ;

     xhr.onload = function (e) {
      console.log( ( ( xhr.status === 200 ) ? 'uploaded' : ( 'error: ' + xhr.status ) ) );
     } ;

     var action = $( 'upload' ).get( 'action' ) ;

     xhr.open("POST", action, true);
     xhr.setRequestHeader("X_FILENAME", filename);
     xhr.send(formData);
    }
} ;
而不是:

xhr.upload.onprogress = function(e) {
  console.log(e.loaded + ' / ' + e.total);
};
尝试:


谢谢你,但那似乎不行。它仍然只是在开始时开火。当我刚开始的时候,我有一个非常类似的东西,这很有效。当我切换到使用BLOB而不是实际文件时,问题就出现了。
function uploadProgress(e) {
  if (e.lengthComputable) {
    console.log(e.loaded / e.total);
  } else {
    console.log('Cannot compute progress.');
  }
}

xhr.upload.addEventListener("progress", uploadProgress, false);