基于SpringMVC做web层框架的时候,在使用postman进行调试的时候经常会出现406的错误,具体如下如下:
Failed to load resource: the server responded with a status of 406 (Not Acceptable):
<!DOCTYPE html>
<html>
<head>
<title>Apache Tomcat/8.0.24 - Error report</title>
<style type="text/css">H1 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:22px;} H2 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:16px;} H3 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:14px;} BODY {font-family:Tahoma,Arial,sans-serif;color:black;background-color:white;} B {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;} P {font-family:Tahoma,Arial,sans-serif;background:white;color:black;font-size:12px;}A {color : black;}A.name {color : black;}.line {height: 1px; background-color: #525D76; border: none;}</style>
</head>
<body>
<h1>HTTP Status 406 - </h1>
<div class="line"></div>
<p>
<b>type</b> Status report
</p>
<p>
<b>message</b>
<u></u>
</p>
<p>
<b>description</b>
<u>The resource identified by this request is only capable of generating responses with characteristics not acceptable according to the request "accept" headers.</u>
</p>
<hr class="line">
<h3>Apache Tomcat/8.0.24</h3>
</body>
</html>
这个问题我暂时排除的不是缺少@ResponseBody,或者jar包的版本过低产生的。
主要是接口的后缀名的问题。在请求的时候,会优先根据url请求的后缀决定请求类型。因此如果进行调试的时候,请记住,解决方式:
1.要么在其后缀上加上.json
2.要么在使用postman的时候加上Header:Key=Accept,Value=appplication/json
以上两种任意方式均可以解决406的错误。
以上一般仅仅只作为自己调试的时候使用,因为一般前端在进行AJAX参数获取的时候,都会规定好获取的参数的类型,是JSON格式。