1. 程式人生 > >解決Spring MVC Content type 'application/x-www-form-urlencoded;charset=UTF-8' not supported

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

前言

今天在提交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註解接收引數的,所以在前臺就必須指定內容型別。

僅供參考,不一定都試用。

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

感謝閱讀,寫得不好的地方請指教,能幫助到你是對我最好的回報,不卑不亢,加油。
請你記住比你優秀的一定比你努力,比你努力的人一定比你優秀。
================================================================================