«Успех» относится только к ответу с сервера. Если ответ сервера - ответ 200, он будет считаться успешным, независимо от того, возникла ли проблема с бизнес-логикой на стороне сервера.
Вы можете либо вернуть код ошибки 400 или 500 с сервера, либо, желательно, отправить ответ на JS, содержащий любые сообщения об ошибках.
Например, я обычно ожидаю ответ JSON от сервера. Если на стороне сервера была ошибка, в ней есть ошибка: флаг true, и я обрабатываю его в JS. Таким образом, типичный безошибочный ответ был бы:
{error:false, html:"My HTML in here"}
ошибка на сервере будет возвращать:
{error:true, errorMsg: "My error message here"}
отредактирован дать пример:
Ожидая ответ JSON, как описано выше, я мог бы что-то вроде этого:
$.ajax({
url: 'test.json',
dataType: 'json',
success: function(data) {
if (data.error) { alert(data.errorMsg); }
else {
//do something with data.html
}
}
});
Я вижу, что вы говорите. Итак, следует ли анализировать тело ответа и искать какое-то пользовательское сообщение, которое я мог бы отправить из приложения asp.net? – developer747
Я отредактировал свой ответ выше, чтобы привести пример. – Steve
@ разработчик747, ответ Стив абсолютно прав. ваши данные, которые возвращаются из параметров (-ов) вашей функции успеха, могут сильно варьироваться в зависимости от того, как была разработана конечная точка ajax. вы также должны начать с console.log'а вашего параметра ответа и увидеть, что именно находится внутри него. как только вы точно это знаете, вы можете проанализировать его и начать повторять через пространство имен и свойство. – Kristian