Json 请求出现 Status Code: 406 Not Acceptable

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

前端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就可以直接去掉。

阅读更多
个人分类: 错误集
上一篇No mapping found for HTTP request with URI [/xxx/xxx] in DispatcherServlet
下一篇JDK 动态代理
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭