近期写项目遇到上传请求无法监听进度事件,目前已解决,以下是我的解决方案,希望帮助有用的人; 1简单粗暴,可有可无那就直接撇弃mock; 2必须使用mock,那如下: let fd = new FormData(); fd.append('file', file.file); let xhr; if(window._XMLHttpRequest){ // 此处引入了mock需要这样写,mock改写了XMLHttpRequest xhr = new window._XMLHttpRequest(); }else{ // 如无Mock可采用其他方式或原生都行 xhr = new window.XMLHttpRequest(); } xhr.upload.onprogress = (evt) => { if (evt.lengthComputable) { let val = (evt.loaded / evt.total * 100).toFixed(0); console.log(val) } }; xhr.onreadystatechange = () => { if (xhr.readyState == 4 && xhr.status == 200) { const res = JSON.parse(xhr.responseText); if (res.code === 200 && res.success) { this.uploadSuccess(); } else { this.$message.warning(res.msg); this.closeUploadProgressBox(); } } } xhr.open("post",url); xhr.send(fd); 完事,就这样吧;