您的位置:首页 > Web前端 > JavaScript

前台页面发送ajax前台接收json格式的数据,报406状态码的解决方法

2019-06-05 10:53 681 查看

首先明确出现问题的环境

  1. 使用的IDEA创建的ssm项目
  2. 项目中请求路径的后缀名是:[ .htm ]
  3. 从页面中发送ajax请求到后台,后台返回json格式的数据到前台页面

直观明了直接上测试项目的截图

jsp页面代码截图

运行后的截图

页面点击提交按钮之后报出406的错误代码,就非常不解了

(1) 首先需要确定状态码所代表的意思是什么?
在http协议中的响应消息部分,明确了每个状态码所代表的含义是什么,协议中指出,状态码的含义分为5大类,分别为:
- 1xx:信息响应类,表示接收到请求并且继续处理
- 2xx:处理成功响应类,表示动作被成功接收、理解和接受
- 3xx:重定向响应类,为了完成指定的动作,必须接受进一步处理
- 4xx:客户端错误,客户请求包含语法错误或者是不能正确执行
- 5xx:服务端错误,服务器不能正确执行一个正确的请求

(2) 具体406的含义是什么

(3) 定位问题根节在于项目中使用的后缀名为 [ .htm ]
因为项目使用的tomcat启动的,而在tomcat的配置文件中定义了大部分的后缀所对应的响应数据格式是什么,小伙伴们可以在自己的tomcat文件夹下的 conf/web.xml 中找到tomcat为我们默认定义的相应数据格式,如下图的 htm 和 html 对应的数据格式:

而请求的是application/json的类型,浏览器无法解析,就会报错。

(4) 解决方法:
针对以 [ .htm ][ .html ] 作为后缀名进行访问时,我们可以更改对应的返回类型

注:若想使用@ResponseBody注解返回json格式,则需要导入以下三个jar包

jackson-core
jackson-databind
jackson-annotations
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐