前端用ajax发送json数据,其中contentType : ‘application/json’
后端@RequestParam接收参数值的时候总是报错,required=false,放数据进来时发现果然是null。
认为理所应当的地方,代码没有问题,应该就是传值的时候出问题,传的也是json数据。最后查阅资料得知
@RequestParam用来处理 Content-Type 为 application/x-www-form-urlencoded 编码的内容,Content-Type默认为该属性。如果改用 json 字符串来传值的话,类型设置为 application/json,点击发送的话,会报错,后台接收不到值,为 null。
问题解决:在ajax中将contentType: ‘application/json’ (json数据)改为contentType: ‘application/x-www-form-urlencoded’(key-value 键值对)
就application/json类型的数据而言,使用注解@RequestBody可以将body里面所有的json数据传到后端,后端再进行解析。
附上