initbinder对ajax不起作用,如何返回调用jQuery AJAX错误函数的错误消息和HTTP状态代码?...

使用Spring,我有一个SimpleMappingExceptionResolver,可以在resolveException方法中捕获应用程序中的任何意外异常.在该方法中,我返回一个ModelAndView,它将错误消息文本提供给HTTP客户端.这是代码:

public class UnExpectedExceptionResolver extends SimpleMappingExceptionResolver {

private Log logger = LogFactory.getLog(this.getClass().getName());

private ResourceBundleMessageSource messageSource;

@Override

public ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, Object handler, Exception exception) {

// let the end user know that an error occurred

Locale locale = RequestContextUtils.getLocale(request);

String messageText = messageSource.getMessage("systemError", null, locale);

Message message = new Message(messageText, MessageType.ERROR);

ModelAndView mav = new ModelAndView();

mav.setView(new MappingJacksonJsonView());

mav.addObject("message", message);

return mav;

}

因此,响应将返回HTTP状态代码200,响应文本为消息(JSON).不幸的是,客户认为这是一个有效的响应,因为200代码并试图处理它.我尝试将HTTP状态代码设置为500,如下所示:

response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, "Server Error");

就在之前

return mav;

声明.不幸的是,这会返回一个HTML页面,指示内部错误而不是我的JSON消息.如何返回JSON消息并仍向客户端指示服务器错误(或某种类型的错误)?具体来说,我希望调用AJAX调用中的客户端错误函数,并将消息数据发送回客户端.仅供参考 - 我在客户端使用jQuery.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值