При использовании jQuery метод ajax для представления данных формы, что является лучшим способом обработки ошибок? Это пример того, как может выглядеть вызов:
$.ajax({
url: "userCreation.ashx",
data: { u:userName, p:password, e:email },
type: "POST",
beforeSend: function(){disableSubmitButton();},
complete: function(){enableSubmitButton();},
error: function(xhr, statusText, errorThrown){
// Work out what the error was and display the appropriate message
},
success: function(data){
displayUserCreatedMessage();
refreshUserList();
}
});
Запрос может завершиться ошибкой по нескольким причинам, таким как дублированное имя пользователя, дублированный адрес электронной почты и т.д., и ashx записывается, чтобы генерировать исключение, когда это происходит.
Моя проблема заключается в том, что, бросая исключение, ashx заставляет statusText
и errorThrown
быть undefined.
Я могу добраться до XMLHttpRequest.responseText
, который содержит HTML, который составляет стандартную страницу с ошибкой .net.
Я нахожу название страницы в файле responseText и использую заголовок, чтобы выяснить, какая ошибка была выбрана. Хотя у меня есть подозрение, что это будет разваливаться, когда я включаю пользовательские страницы обработки ошибок.
Должен ли я бросать ошибки в ashx или мне нужно вернуть код состояния как часть данных, возвращаемых вызовом userCreation.ashx
, а затем использовать это, чтобы решить, какое действие нужно предпринять?
Как вы справляетесь с этими ситуациями?