为了账号安全,请及时绑定邮箱和手机立即绑定

ajax application/json传入后台,拦截器怎么获取参数且不破坏 @RequestBody正常接收?

ajax application/json传入后台,拦截器怎么获取参数且不破坏 @RequestBody正常接收?

繁星淼淼 2019-02-26 08:07:20
如题: 前端传入代码: $("#button").click(function(){ var user = {"name":"张三","age":9,"key":"xx"}; $.ajax({ url:"http://localhost:8080/mybatis/insert", contentType : 'application/json', type : "POST", dataType: 'json', data: JSON.stringify(user), success : function(data) { alert(data.result); } }); 拦截器: @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse arg1, Object arg2) throws Exception { System.out.println("我拦截了"); // 不能使用 request.getReader(); 和流的方式获取(流只能取一次,导致后台获取不到参数),request.getParameter();获取不到 json格式参数 return true; } 后台: @RequestMapping("/insert") public Map<String, Object> insert(@RequestBody User user){ service.insert(user); Map<String, Object> result = new HashMap<>(); result.put("result", "success"); return result; } ,请问谁有办法在不破坏后台:流和@RequestBody情况下,在拦截器里面获取我前台传入的key?
查看完整描述

2 回答

?
慕桂英3389331

TA贡献2036条经验 获得超8个赞

RequestBodyResponseBody 只能被读取一次,故而不要在 interceptor 中进行读取操作. 具体的解释和解决方法和移步这里Spring REST service: retrieving JSON from Request

查看完整回答
反对 回复 2019-03-01
  • 2 回答
  • 0 关注
  • 684 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号