$.ajax({
xhr: function()
{
var xhr = new window.XMLHttpRequest();
//Upload progress
xhr.upload.addEventListener("progress", function(evt){
if (evt.lengthComputable) {
var percentComplete = evt.loaded/evt.total;
//Do something with upload progress
console.log(percentComplete);
}
}, false);
//Download progress
xhr.addEventListener("progress", function(evt){
if (evt.lengthComputable) {
var percentComplete = evt.loaded/evt.total;
//Do something with download progress
console.log(percentComplete);
}
}, false);
return xhr;
},
type: 'POST',
url: "/",
data: {},
success: function(data){
//Do something success-ish
}
});
因为XHR由jqXHR取代这并不jQuery的1.5+工作(即原始XHR高水平版本)。现在的问题是如何得到它与jqXHR工作... 任何人都知道如何去做吧?有没有办法让jQuery ajax上传进度?
我不认为这是给定的副本后,给定的职位甚至不使用jQuery,而jQuery是这个问题的原因。 –
从jQuery 1.5开始,'$ .ajax()'返回一个jqXHR对象,它实现了Promise接口。我猜你可以使用'$ .ajax(...)。进度(回调)'监视进度。不幸的是,我找不到完整的引用,因此无法通知回调接受哪些参数,尽管它可能与“完成”(成功)回调相同,即。 '函数(data,textStatus,jqXHR){...}'。 ** [jqXHR对象](http://api.jquery.com/jQuery.ajax/#jqXHR)**公开了一堆可以在回调中利用的属性和方法。 –