前台页面发送ajax前台接收json格式的数据,报406状态码的解决方法
2019-06-05 10:53
681 查看
首先明确出现问题的环境
- 使用的IDEA创建的ssm项目
- 项目中请求路径的后缀名是:[ .htm ]
- 从页面中发送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
相关文章推荐
- 关于java接收前台$.ajax格式为多维json数组数据为null的原因及解决方法
- Ajax核心XMLHttpRequest对象、(发送请求、接收)方法和属性介绍、AJAX开发框架、数据格式提要(XML、JSON、HTML)
- Ajax核心XMLHttpRequest对象、(发送请求、接收)方法和属性介绍、AJAX开发框架、数据格式提要(XML、JSON、HTML)
- Ajax核心XMLHttpRequest对象、(发送请求、接收)方法和属性介绍、AJAX开发框架、数据格式提要(XML、JSON、HTML)
- Ajax核心XMLHttpRequest对象、(发送请求、接收)方法和属性介绍、AJAX开发框架、数据格式提要(XML、JSON、HTML)
- var dataObj=eval("("+data+")");//转换为json对象(解决在ajax返回json格式数据的时候明明正确的获取了返回值但是却就是进不去success方法的问题。格式错误)
- Ajax前台返回JSON数据后再Controller中直接转换成类型使用,后台接收json转成实体的方法
- json数据在前台接收不到数据的解决方法
- 使用ajax接收后台发送过来的json数据方法
- $.ajax返回的JSON格式的数据后无法执行success的解决方法
- 将表单序列化之后变成的json格式的数据无法通过Ajax发送到后台的解决
- $.ajax返回的JSON格式的数据正常后无法进入success的解决方法
- jsp后台数据处理,json数据格式传输,js前端用ajax方法接收数据demo
- springMVC_json格式数据的接收和发送(未解决中文乱码问题)
- springMVC_json格式数据的接收和发送(未解决中文乱码问题)
- $.ajax返回的JSON格式的数据后无法执行success的解决方法
- $.ajax返回的JSON格式的数据后无法执行success的解决方法
- $.ajax返回的JSON格式的数据后无法执行success的解决方法
- Ajax向后台传json格式的数据出现415错误的原因分析及解决方法
- 初涉Ajax,以post或get方法发送数据,以json或xml形式接收服务器返回的请求