起初是这样,指定为 application/json然后传个json对象

  • 结果后端无法绑定数据到对象,当把contentType : "application/json"注释了正常
  • 原因
  • 指定了contentType : "application/json"模式后,data就只能是字符串而且必须是json字符串,contentType : "application/json"不会自动将json字符串转化为对象,需要在后端参数接收借助注解
  • @RequestBody
  • (假如不指定contentType则为默认模式)默认模式"application/x-www-form-urlencoded"支持查询字符串(非json字符串)和对象作为data参数,可以自动将参数绑定到后端参数对象。
  • 综上指定了contentType : “application/json”,data应该时json字符串(json.stringfy()),后端加@RequestBody;未指定默认模式data可以是json对象,后端不需要注解。
  • 这就解释了为啥当把contentType : "application/json"注释了就正常,当然也可以把json对象变为json串再配合注解