Тело ответа доступно по xhr.responseText
.
Однако HttpServletResponse#sendError()
(<- нажмите ссылку, чтобы прочитать Javadoc самостоятельно) будет использовать шаблон страницы ошибок по умолчанию для сервлет-контейнера или ваш пользовательский шаблон страницы ошибок, как вы определилив <code>web.xml.Это HTML-документ, который вы должны проанализировать сами.
Согласно вашему комментарию к другому ответу, вы, кажется, используете Tomcat и извлекаете страницу ошибки по умолчанию;сообщение доступно как первый <u>
элемент второго <p>
.Так что это должно сделать:
var errorMessage = $(xhr.responseText).filter('p:eq(1)').find('u').text();
if (errorMessage == 'unavailableimage') {
// ...
}
Вам нужно только помнить, что вы так тесно связаны с разметкой страницы ошибок (по умолчанию).Лучше не использовать HttpServletResponse#sendError()
, а просто установить статус с помощью HttpServletResponse#setStatus()
(<- да, нажмите на него, чтобы прочитать Javadoc, ответ был там) и написать сообщение об ошибке в ответтело себя: </p>
response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
response.getWriter().write("unavailableimage");
Таким образом, xhr.responseText
в точности unavailableimage
.
if (xhr.responseText == 'unavailableimage') {
// ...
}