Моя загрузка действительно работает нормально. Код
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
срабатывал.