vue使用fetch.js发送post请求java后台无法获取参数值
Posted Schon_zh
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vue使用fetch.js发送post请求java后台无法获取参数值相关的知识,希望对你有一定的参考价值。
问题:前台vue使用fetch.js发送post请求后,后台 request.getParameter()无法获取到参数值
思路:查阅后,原因为fetch中头文件Content-type这个Header为application/x-www-form-urlencoded导致request请求中的form data变成request payload
处理办法:后台controller中使用流接受数据后,在进行查询操作既可。
- vue代码
-
/** * 获取行业大类 */ export const hangyebrief = industryId => fetch(\'/console/good/industry/findIndustry\', { industryId: 2 }, \'POST\');
controller代码
-
@RequestMapping("findIndustry") @ResponseBody public AjaxRes findIndustry( HttpServletRequest request,HttpServletResponse response){ StringBuilder sb = new StringBuilder(); try(BufferedReader reader = request.getReader();) { char[]buff = new char[1024]; int len; while((len = reader.read(buff)) != -1) { sb.append(buff,0, len); } }catch (IOException e) { e.printStackTrace(); } String idString = sb.toString(); String industryId = idString.substring(idString.indexOf(":")+1,idString.indexOf("}")); AjaxRes aj = new AjaxRes(); GoodIndustryVo goodIndustry = new GoodIndustryVo(); if (industryId != null && industryId != "") { goodIndustry.setIndustryId(Integer.parseInt(industryId)); } List<GoodIndustryVo> goodIndustryList = goodIndustryService.find(goodIndustry); aj.setObj(goodIndustryList); return aj; }
以上是关于vue使用fetch.js发送post请求java后台无法获取参数值的主要内容,如果未能解决你的问题,请参考以下文章