美文网首页
前端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