Tengo un controlador Java Spring MVC que puede arrojar una excepción. Tengo una configuración de @ExceptionHandler para manejar estos errores, y me gustaría utilizarla para devolver el mensaje de la excepción a la persona que llama.jQuery .error jqXHR.responseText está vacío
El código del servidor es:
@ExceptionHandler(DeviceException.class)
@ResponseStatus(HttpStatus.METHOD_FAILURE)
@ResponseBody
public String handleException(DeviceException ex) {
return ex.getMessage();
}
He probado lanzar una DeviceException y conseguir el resultado utilizando Curl desde la CLI, el mensaje de excepción se devuelve en el cuerpo de la respuesta. No puedo conseguir el manejador .Error jQuery para mostrarla sin embargo, mi código del controlador es:
error: function(jqXHR, textStatus, errorThrown) {
// problem, the data is always blank
alert('jqXHR.responseText = ', jqXHR.responseText);
}
lo único que recibo para el responseText es una cadena vacía. ¿Cómo obtengo la cadena devuelta por @ExceptionHandler para mostrar en el controlador de errores jQuery?
Estoy molesto que es tan difícil de arregle este problema básico, tomaré cualquier ayuda que pueda obtener sin importar qué tan aleatorio :) –
Tengo un problema similar. jqXHR.responseText se establece en chrome pero no en FF 3.6. Estoy PUBLICANDO 'application/x-www-form-urlencoded' y obteniendo 'application/json' - ¿es eso romper el protocolo? – rynop
¿Puedes publicar la respuesta HTTP completa? –