При использовании 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 записывается для выдачи исключения, когда это происходит.
Моя проблема, кажется, в том, что, вызывая исключение, ашх приводит к тому, что statusText
и errorThrown
равны undefined .
Я могу добраться до XMLHttpRequest.responseText
, который содержит HTML, который составляет стандартную страницу ошибки .net.
Я нахожу заголовок страницы в responseText и использую заголовок, чтобы выяснить, какая ошибка была выдана. Хотя у меня есть подозрение, что это рухнет, когда я включу пользовательские страницы обработки ошибок.
Должен ли я выдавать ошибки в ashx, или я должен возвращать код состояния как часть данных, возвращаемых при вызове userCreation.ashx
, а затем использовать это, чтобы решить, какое действие предпринять?
Как вы справляетесь с этими ситуациями?