拦截器直接响应json数据的细节处理 |
您所在的位置:网站首页 › 拦截器返回json › 拦截器直接响应json数据的细节处理 |
在SpringBoot中通过拦截器直接给前端响应Json数据
// 获取响应对象的Writer对象
PrintWriter writer = response.getWriter();
String s = JSON.toJSONString(JsonResult.fail(NoticeEnum.REPECT_SUBMIT));
// 写出数据
writer.print(s);// writer()也可以
writer.flush();
writer.close();
如果直接这样响应json数据,在前端直接用 object.属性 // 监听表单提交事件 $('#editForm').submit(function () { $(this).ajaxSubmit(function (result) { if (result.code == 200) { alert(result.msg); // location.href = "http://www.wipinfo.com"; } else { alert(result.msg); // location.reload(); } }); return false; })并不能获取到相应的数据,弹窗显示 undefind 响应头中没有设置 contentType 信息,浏览器会不知到后台传过来的数据是什么类型的数据,从而不做数据的解析
再查看响应数据,没有乱码了 {"code":50001,"msg":"请勿重复提交"}很奇怪,明明已经接收到了,却拿不到数据 查看通过 controller 正常返回的数据发现 contentType 是 application/json 类型 application/json 类型响应的json字符串会被解析成一个json对象,所以可以直接通过( 对象.属性 )的方式获取值 text/html 类型响应的json字符串就似乎一个字符串,不是一个json对象,所以获取不到值 完美显示 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |