美文网首页
前端Post请求传输数据到后台接收不到

前端Post请求传输数据到后台接收不到

作者: 沁园Yann | 来源:发表于2022-06-27 16:48 被阅读0次

    原因是数据传输的接收方式对不上。

    Content-Type的类型有

    1.application/x-www-form-urlencoded

    常用@RequestParam(“参数名称”)也可以不写使用springMvc自己根据参数名称自动赋值

    2.multipart/form-data

    这个和上个差不多吧,如果是multipart类型的文件,记得在后端接收参数是直接使用 方法(multipart 参数名) 来接收,springMvc就会根据参数名来封装,接收到的对象还会有很多的方法可以查看并使用。

    3.application/json

    必须使用@RequestBody来处理

    普通数据使用Map集合来接收数据,再利用map.get(“参数名称”)来获取,

    如果参数可以封装成对象类型,就不需要自己在做什么只需要方法(@RequestBody User user或者@RequestBody List<User> userList) 直接就自动封装了很是舒服

    如果参数是很多个相同类型的,使用@RequestBody注解将外部传递的json数组数据映射到形参的集合对象中作为数据 例如 方法(@RequestBody List likes)参数的值就全被封装在了集合中 这里有点和map那个相似,但是list集合是有序的,而map是双列集合,可以利用key获取值

    解决方法一:

    前端在请求参数中设置请求头为

    
    header: {"Content-Type": "application/x-www-form-urlencoded"}
    
    

    然后后端就可以用@RequestParam(“参数名称”)接收参数

    解决方法二:

    前端的请求头为

    
    header: {"Content-Type": "application/json"}
    
    
    

    后端要使用RequestBody来接收参数

    
    @RequestMapping("/test")
    
    @ResponseBody
    
    public ResponseVO test(@RequestBody String productId){
    
    }
    
    

    相关文章

      网友评论

          本文标题:前端Post请求传输数据到后台接收不到

          本文链接:https://www.haomeiwen.com/subject/faqovrtx.html