2017-10-11 70 views
0

我想打一個上傳進度條,但它不工作時,此功能xhr.upload.addEventListener("progress", function (e){...}) ...響應錯誤錯誤在康壽未定義上傳與進度百分比不起作用

$.ajax({ 
    xhr: function() { 
     var xhr = new window.XMLHttpRequest(); 
     xhr.upload.addEventListener("progress", function (e) { 
      if (e.lengthComputable) { 
       console.log(e.loaded + "/" + e.total) 
      } 
     }, false); 


     return xhr; 
    }, 
    type: "POST", 
    url: server + '/api/UserFiles/UploadFile', 
    contentType: false, 
    processData: false, 
    data: data, 
    success: function (result) { 
     alert("Uploaded Success"); 

    }, 
    error: function (err) { 

     console.log(err); 
    } 
}); 

的階躍響應是:錯誤錯誤未定義

+3

你沒有在錯誤回調中傳遞任何叫'err'的東西,只是'(xhr,status,p3,p4)'。 – msanford

+0

您是否編輯過符合我評論的代碼,或者是您編寫的代碼的原始代碼?如果是這樣,你應該把它留在問題中。 – msanford

回答

1

您沒有正確執行錯誤處理:在你的榜樣,你試圖登錄一個名爲err變量,它不存在。

(編輯:好的,甚至與編輯的代碼,請繼續閱讀)

According to documentation,應該改爲:

error: function (xhr, textStatus, thrownError) { 
    console.log(xhr.status); 
    console.error(thrownError); 
} 

作爲邊評論,不要使用alert():這不是幾乎與console API一樣強大,它可以完成打印數據表,運行計時器,顯示堆棧跟蹤等令人驚奇的功能。