Json 请求出现 Status Code: 406 Not Acceptable

 

406

这个问题也是搅了半天,才弄好这个问题,写出来是希望大家不要出现同样的问题,关键是避免自己以后现在同样问题。

前端javaScript代码

function getJsonData(){ 				$.ajax({ 					// 传输数据的方式:POST/GET 					type : "post", 					// 请求URL 					url : "${pagecontext.request.contextpath}/json/getData", 					// 请求的数据类型 					contentType : "APPlication/json;charset=utf-8", 					// 传输到后台的数据 					data : '{"userName" : "wumingshi", "gender" : "male"}', 					dataType : "json", 					// 请求成功 					success : function(data){ 						alert(data.userName + ", " + data.gender); 						console.log("服务器传输到前台的数据:" + data); 					} 				}); 			}

后端的java代码如下:

@controller @RequestMapping("/json") public class JsonhandlerController {  	@RequestMapping(value = "/getData", method = RequestMethod.POST, 			produces = "text/html;charset=UTF-8") 	public @responseBody Person getData(@Requestbody Person person) { 		System.out.println("姓名:" + person.getUserName() + ", 性别:" + person.getGender()); 		 		return person; 	} }

前端向后台请求时,总是没有任何结果,在浏览器中查看JavaScript出错信息如下:

报错:406 Not Acceptable,意思就前台无法接受后台信息,也就是前后也后台信息不匹配,出错的原意是,如下:

把produces的值改为 application/json;charset=utf-8 就好了,如果配置文件中配置charset=utf-8 ,防止出现乱码的话,其实这里的produces就可以直接去掉。

相关阅读

SSM框架中 出现的406 (Not Acceptable)

首先,需要清楚,http state 406代表什么意思:406是HTTP协议状态码的一种,表示无法使用请求的特性来响应请求的网页。一般指客户端浏览

0x0040625a指令引用的0x00000000内存.该内存不能为rea

今天在重新装完电脑后提示0x0040625a指令引用的0x00000000内存.该内存不能为read,郁闷死,这是什么意思?要如何解决?下面就为大家带来7

错误1406 无法将数值写入键/Software/Classess/.htm/O

通过网络的发达我不断地努力,今天终于解决了这个问题 错误1406.无法将数值写入键/Software/Classess/.htm/OpenWithList/devenv

发表评论