【发布时间】:2015-03-01 20:54:09
【问题描述】:
我正在尝试使用 XMLHttpRequest 发送文件,它正在工作,但我的进度监视器不工作。
我尝试上传一个 700KB 的文件和一个 3MB 的文件,但遇到了同样的问题。 "progress" 事件触发一次,并且只触发一次,它表示 event.loaded 和 event.total 始终相同。上传需要足够的时间,但事件只触发一次。
在 chrome 和 firefox 中测试过同样的问题。以下是事件的控制台日志
XMLHttpRequestProgressEvent {totalSize: 764277, position: 764277, total: 764277, loaded: 764277, lengthComputable: true…}
bubbles: false
cancelBubble: false
cancelable: true
clipboardData: undefined
currentTarget: XMLHttpRequestUpload
defaultPrevented: false
eventPhase: 0
lengthComputable: true
loaded: 764277
position: 764277
returnValue: true
srcElement: XMLHttpRequestUpload
target: XMLHttpRequestUpload
timeStamp: 1390945794935
total: 764277
totalSize: 764277
type: "progress"
__proto__: XMLHttpRequestProgressEvent
这是我的源代码 javascript
var formData = new FormData();
formData.append('file', file);
var xhr = new XMLHttpRequest();
xhr.upload.addEventListener("progress", function(e) {
console.log(e);
}, false);
xhr.onload = function () {
if (xhr.status === 200) {
console.log('done');
}
else if (xhr.status == 403) {
console.log('forbidden');
}
else {
console.log('error');
}
};
xhr.open("POST", '/upload.php');
xhr.send(formData);
【问题讨论】:
-
客户端和服务器是否在同一台机器上?
-
@RayNicholus 我有完全相同的问题,是的,他们是......这可能是问题吗?
标签: javascript html xmlhttprequest