2014-05-06 67 views
1

我在这里有一个小问题。我通过AJAX将一些图像数据上传到我的PHP脚本中。除了进度部分以外,整个脚本运行良好。Ajax进度无法正常工作

在控制台我得到的唯一的事情就是

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%。我试着做一些循环,但没有奏效。任何想法发生了什么

干杯

+0

可能重复http://stackoverflow.com/questions/13203231/is-there-any-way-to-get-jquery-ajax -upload-progress) – Luceos

+0

你试过一个非常大的图像吗?但是,它永远不会很好地计数,它只会在多部分请求/响应返回并且XmlHttpRequest对象触发状态更改事件时发生,这可能是间歇性的。 –

+0

你在哪个浏览器中检查过?你是否在另一个浏览器中检查它? – Prutswonder

回答

0

添加async:true在您的Ajax请求。

$.ajax({ 
       xhr: function(){...}, 
       type: "POST", 
       url: url, 
       async: true, 
       data: { 
        image: img, 
        designID: dID, 
       } 
      }).done(function(newID) { 
       console.log("ajax done"); 
      }); 
的[有没有什么办法让jQuery的AJAX上传进度?](