关于 Spring MVC,使用JavaScript原生的Ajax提交请求,后端Controller接收不到参数

关于 Spring MVC,使用JavaScript原生的Ajax提交请求,后端Controller接收不到参数,有哪位道友可以帮忙回答一下吗?

下面是代码:

Spring MVC配置:

img


Controller:

img


JS:

img

目前,后端能接收到参数的也只有以下这种方法:

img

先看下是否进接口了。如果只是接收不到参数,那是映射问题。

你这里是POST请求,

img


这个默认是Get请求,改一下类型 @RequestMapping(method = RequestMethod.POST, value = "")

img

你这请求头设置了json格式 后端就需要依赖@RequestBody注解

img

地址别写成一模一样的,要么请求方式不同,要么地址不同,你这启动没报错吗。

你这能请求到controller去?

首先,后端接受请求要素,1:请求url需要对应且唯一,2:请求方式需要对应(例如post)3:请求格式需要对应(例如json或者表单)
例图的第一个失败代码原因

img


不满足第2点和第3点
解决:2:@RequestMapping(method = RequestMethod.POST, value = "send_some")
3:@RequestBody User user(该注解意思是接收前端的数据格式为application/json;charset:utf-8;)
例图的第二个失败代码原因

img

不满足第2点和第3点
解决 2:前端js改为get请求
3:前端传值为json格式string(例如: username=张三 )

mapping都一样,启动就应该报错了

Controller里面加@RestController
方法参数前面加@RequestBody就可以了

1、后端请求的方式要和前端请求要一致,要么都为post,要么都为get,否则请求无法到达方法
2、参数格式要一致,如果是post请求,前端传的是json字符串,后端接口方法中User对象前要加 @RequestBody,如果是get请求,后端可以使用@RequestParam接收

后端指定请求类型呢,谷歌看看前端传数据没