2017-10-11 54 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一样强大,它可以完成打印数据表,运行计时器,显示堆栈跟踪等令人惊奇的功能。