【发布时间】:2012-02-27 18:59:48
【问题描述】:
我的上传实际上工作正常。代码是
var data = new FormData(document.getElementById("upload-form"));
var xhr = new XMLHttpRequest();
xhr.upload.addEventListener("progress", uploadProgress, false);
xhr.addEventListener("load", uploadComplete, false);
xhr.addEventListener("error", uploadFailed, false);
xhr.open("POST", postUrl, true);
xhr.send(data);
我的uploadProgress 方法会按原样触发。我的uploadComplete 在上传成功时工作,但是当出现错误时,它仍然会触发而uploadFailed 不会。 FireBug 显示服务器正在响应异常消息,所以我不确定为什么 load 会触发 error。
function uploadComplete(e) {
window.location.href = redirectUrl;
}
function uploadFailed(e) {
alert("There was an error uploading the file.");
}
为了简化测试,我将 ASP.NET MVC 控制器操作修改为
throw new ApplicationException("Error");
我做错了什么?如果在控制器上引发异常,我希望触发 uploadFailed 方法。
【问题讨论】:
-
我添加了同样的问题,必须检查
uploadComplete内的 HTTP 响应代码才能知道它是否成功。
标签: jquery asp.net-mvc html exception-handling