2014-05-06 90 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上傳進度?](