解决Spring MVC Content type 'application/x-www-form-urlencoded;charset=UTF-8' not supported

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_22067469/article/details/84989900

前言

今天在提交Ajax请求的时候出现下面异常

具体异常

org.springframework.web.HttpMediaTypeNotSupportedException: Content type 'application/x-www-form-urlencoded;charset=UTF-8' not supported
	at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodArgumentResolver.readWithMessageConverters(AbstractMessageConverterMethodArgumentResolver.java:152)
	at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.readWithMessageConverters(RequestResponseBodyMethodProcessor.java:178)
	at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.resolveArgument(RequestResponseBodyMethodProcessor.java:98)
前台代码
$.ajax({
	url:"khRyPfGsController.do?saveRows",
	type:"post",
	data:JSON.stringify(result),
	dataType:"json",
	success:function(data){
		tip(data.msg);
		if(data.success){
			reloadTable();
		}
	}
})
后端代码
@RequestMapping(params = "saveRows")
@ResponseBody
public AjaxJson saveRows(@RequestBody List<Map<String, Object>> list) {
	//省略
}
解决办法

JS代码加上contentType:"application/json"即可

$.ajax({
	url:"khRyPfGsController.do?saveRows",
	type:"post",
	data:JSON.stringify(result),
	contentType:"application/json",
	dataType:"json",
	success:function(data){
		tip(data.msg);
		if(data.success){
			reloadTable();
		}
	}
})
原因

由于后台是使用@RequestBody注解接收参数的,所以在前台就必须指定内容类型。

仅供参考,不一定都试用。

================================================================================

感谢阅读,写得不好的地方请指教,能帮助到你是对我最好的回报,不卑不亢,加油。
请你记住比你优秀的一定比你努力,比你努力的人一定比你优秀。
================================================================================

猜你喜欢

转载自blog.csdn.net/qq_22067469/article/details/84989900