Ajax进度无法正常工作

时间:2014-05-06 06:37:16

标签: javascript jquery ajax

我这里有一个小问题。我通过AJAX将一些图像数据上传到我的PHP脚本。除了进度部分外,整个脚本运行良好。

我得到的唯一控制台是

Upload1

然后

Ajax done

Javasript:

$.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("upload"+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("download:"+percentComplete);
                        }
                    }, false);
                    return xhr;
                },
                type: "POST",
                url: url,
                data: {
                    image: img,
                    designID: dID,
                }
            }).done(function( newID ) {
                console.log("ajax done");
            });

我认为上传的数量从1%增加到100%。我试着做一些循环,但它没有工作......不知道发生了什么

干杯

1 个答案:

答案 0 :(得分:0)

在您的ajax请求中添加async:true

$.ajax({
                xhr: function(){...},
                type: "POST",
                url: url,
                async: true,
                data: {
                    image: img,
                    designID: dID,
                }
            }).done(function( newID ) {
                console.log("ajax done");
            });