在前端用的是ajax进行传参,后端用的是HttpServletRequest获取参数,为什么传的参数print出来的是null?

在前端用的是ajax进行传参,后端用的是HttpServletRequest获取参数,为什么传的参数print出来的是null?

img


img

你用的是post传递json参数,实际的参数是在requestBody里面,你如果通过request取的话,需要通过从HttpServletRequest的Reader流中获取请求body参数

BufferedReader reader = request.getReader();
        StringBuilder builder = new StringBuilder();
        String line = reader.readLine();
        while(line != null){
            builder.append(line);
            line = reader.readLine();
        }
        reader.close();

        String reqBody = builder.toString();

然后将这个字符串解析json,再获取到这个值。
不过在spring中一般是定义POJO实体类,对应请求参数字段,然后通过@RequestBody注解绑定参数

感觉你的代码有一些问题,不过我讲不出来(很久没有接触这个了),你可以看看这篇博客:https://liuze.blog.csdn.net/article/details/120602012
,虽然不知道能不能解决题主的问题哈!

从页面f12看下,参数应该在请求体里面,不能通过这种方式获取
定义对应的DTO,标注@RequestBody