Моя загрузка HTML 5 не ловит ошибки - PullRequest
0 голосов
/ 27 февраля 2012

Моя загрузка действительно работает нормально. Код

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 срабатывал.

1 Ответ

0 голосов
/ 27 февраля 2012

Тупой вопрос, но действительно ли ваш контроллер MVC (или связанные с ним обработчики) устанавливает http-код?Я использовал класс HandleJsonExceptionAttribute, который, как я обнаружил, доставлял ошибки JSON ошибки как JSON, когда он устанавливается через атрибут в методах контроллера, и поскольку он явно устанавливает HTTP-код в public override void OnActionExecuted(ActionExecutedContext filterContext).Если вы не добавляете какие-либо специальные атрибуты в методы контроллера, извините, не берите в голову.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...