response返回错误的html,如何使用response.senderror返回json

小编典典

根据Javadoc的HttpServletReponse#sendError方法:

使用指定的状态将错误响应发送到客户端。 服务器默认创建响应,使其看起来像一个包含指定消息的HTML格式的服务器错误页面,将内容类型设置为“ text

/ html”, 而cookie和其他标头保持不变。

因此,sendError将使用您提供的消息生成HTML错误页面,并将内容类型覆盖为text/html。

由于客户端需要JSON响应,因此您最好使用自己的字段手动设置响应代码和消息UserBean-假设它可以支持。然后将其序列化为客户端Javascript可以评估的JSON响应。

@RequestMapping(value = "{id}/{name}" ,method=RequestMethod.POST,produces = MediaType.APPLICATION_JSON_VALUE)

public @ResponseBody UserBean login(@PathVariable String id,@PathVariable("name") String userName,

@RequestHeader(value = "User-Agent") String user_agen,

@CookieValue(required = false) Cookie userId,

HttpServletRequest request,HttpServletResponse response,@RequestBody UserBean entity

) throws IOException {

System.out.println("dsdsd");

System.out.print(userName);

response.setContentType( MediaType.APPLICATION_JSON_VALUE);

response.setStatus(HttpServletResponse.SC_BAD_REQUEST);

UserBean userBean = new UserBean();

userBean.setError("something wrong"); // For the message

return userBean;

还可以选择使用Tomcat属性org.apache.coyote.USE_CUSTOM_STATUS_MSG_IN_HEADER,该属性会将消息放入自定义响应标头中。

2020-06-01

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值