我已经编写了一个ajax函数来上传一个有效的文件,但进度条没有显示文件上传的进度。当文件上传时,进度条将显示100%,但在完全上传之前不会显示任何进度。
function ajaxfilefn(path, sdata, progressbar)
{
function progressHandler (e)
{
$(progressbar).prop({value: e.loaded, max: e.total});
}
return $.ajax({
url: path,
xhr: function () {
var custom_xhr = $.ajaxSettings.xhr();
if (custom_xhr.upload){custom_xhr.addEventListener('progress', progressHandler, false);}
return custom_xhr;
},
method: "post",
data: sdata,
dataType: "json",
cache: false,
contentType: false,
processData: false
});
}
我在这里错过了什么吗?
答案 0 :(得分:1)
有两个不同的进展阶段:上传,然后是回复。您目前正在听的是响应。要收听上传,请将事件添加到xhr.upload
对象。
...(custom_xhr.upload.addEventListener('progress',...