Content type ‘application/x-www-form-urlencoded;charset=UTF-8‘ not supported

SpringBoot前后端分离项目,前端html页面使用ajax请求后台接口

控制台异常信息:

2021-05-10 22:29:25.707  WARN 15836 --- [nio-9000-exec-9] .w.s.m.s.DefaultHandlerExceptionResolver : Resolved [org.springframework.web.HttpMediaTypeNotSupportedException: Content type 'application/x-www-form-urlencoded;charset=UTF-8' not supported]

后台接口使用@RequestBody注解接收参数

解决方式:
ajax中添加
headers:{“Content-Type”:“application/json;charset=UTF-8”},

$.ajax({
				url:'http://localhost:9000/login',
				data:JSON.stringify(data),
				headers:{"Content-Type":"application/json;charset=UTF-8"},
				dataType:'json',//服务器返回json格式数据
				type:'post',//HTTP请求类型
				timeout:10000,//超时时间设置为10秒;
				success:function(data){
					console.log(data);
				},
				error:function(xhr,type,errorThrown){
					
				}
			});

原因:异常中说明了前端发送的application/x-www-form-urlencoded;charset=UTF-8格式的数据不支持,后台如果使用
@RequestBody注解接收参数,前端要传输json格式的数据才能进行参数的装配。

底层的话@RequestBody注解中应该有关于数据解析和解析之后进行装配的部分 没去看底层,有兴趣的同学可以自己去看看,看完可以回来分享一下。

posted @ 2021-05-10 22:40  有锦  阅读(37)  评论(0)    收藏  举报  来源