关于ajax与json的使用

起初是这样,指定为 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串再配合注解
  • 另外不知道为啥把请求类型type省略或者值为get有中文参数时后端会乱码,写为contentType : “application/x-www-form-urlencoded;charset=UTF-8” 也没用,改为post就好了。路过知道的还请指教下。

猜你喜欢

转载自blog.csdn.net/qq_37514822/article/details/89056962