Content type ‘applicationx-www-form-urlencoded;charset=UTF-8‘ not supported“【已解决】

114 篇文章 0 订阅
110 篇文章 0 订阅

出现这个问题的原因是,使用post方式提交时,后端使用@RequestBody注解,表示接收json格式数据,然后前端发送post请求的时候,如果没有指定Content-Type类型的话,原生FORM表单的Content-Type默认为 “application/x-www-form-urlencoded”。所以导致后端接受不到值,如果后端用了@RequestBody注解接受参数的话,post请求一定要设置’Content-Type’: ‘application/json’,。

但是要注意了
axios 使用 post 发送数据时,默认是直接把 json 放到请求体中提交到后端的。也就是说,我们的使用axios发送请求时,Content-Type 变成了 application/json;charset=utf-8 ,这是axios默认的请求头content-type类型,在没有专门设置时,都是application/json
在这里插入图片描述
补充一下Axios请求头中常见的Content-Type常见的三种格式:

1.Content-Type: application/json
如果没有特别声明,appiationl/son是Asios默认的Content-ype,也是我最常用的一种,它声明了请求体中的数据将会以json字符串的形式发送到后端。所以,在情求的时候,需要将需要传给后台的数据JSON序列化即可。

2.Content-Type: application/x-www-form-urlencoded
Content-Typeapplication/x-ww-form-urlencoded,则声明了请求体中的数据会以键值对(普通表单形式)发送到后端,这种类型是Ajax默认的。偶尔后端需要我要传键官⒅始给他们,那这个时候,就需要在头部设置headers: [ ‘Content-Type’:application/x-www-form-urlencoded’},

3.Content-Type: multipart/form-data
Content-Type:multipart/form-data,则一般用来上传文件,指定传输数据为二进制数据,也可以是键值对的形式。

大致意思就是你正常发起的一个请求,浏览器都会简单的将你提交的内容展示出来。所展示的内容只是因为Content-Iype设置的不同,而并不是因为数据提交方式的不同。如果一个请求的header设置为(Content-ypeaplication/son,那么激览器就会以Request Payoad来显示你的请求体,所以基本数据格式为SON对象,;如果一个请求被设置为method=-post’,并且请求的header设置为Content-Iypeasppicationpe ww-fom-urlencoded或者Content- ypemuliartfom-data,那么测览器就会以Request Payioad来显示你的请求体,所以基本数据格式为键值对,

先自我介绍一下,小编13年上师交大毕业,曾经在小公司待过,去过华为OPPO等大厂,18年进入阿里,直到现在。深知大多数初中级java工程师,想要升技能,往往是需要自己摸索成长或是报班学习,但对于培训机构动则近万元的学费,着实压力不小。自己不成体系的自学效率很低又漫长,而且容易碰到天花板技术停止不前。因此我收集了一份《java开发全套学习资料》送给大家,初衷也很简单,就是希望帮助到想自学又不知道该从何学起的朋友,同时减轻大家的负担。添加下方名片,即可获取全套学习资料哦

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值