Http状态码406(Not Acceptable) 错误问题解决方法

Http状态码406(Not Acceptable) 错误问题解决方法状态码406:HTTP协议状态码的一种,表示无法使用请求的内容特性来响应请求的网页。说白了就是后台的返回结果前台无法解析就报406错误。示例代码中请求代码,后台代码均正常,且有返回信息。如下图:$.ajax({url:’http://localhost:8080/findDsrwByDsrwid’,type:’post’,…

大家好,又见面了,我是你们的朋友全栈君。

状态码406:HTTP协议状态码的一种(4xx表示客户端的问题),表示客户端无法解析服务端返回的内容。说白了就是后台的返回结果前台无法解析就报406错误。

示例代码中请求代码,后台代码均正常,且有返回信息。如下图:

$.ajax({
            url:'http://localhost:8080/findDsrwByDsrwid',
            type : 'post',
            data :{
                id : cztj
            },
            dataType:'json',
        }).success(function(result){
          }

Http状态码406(Not Acceptable) 错误问题解决方法

那我们来看看网页状态:

Http状态码406(Not Acceptable) 错误问题解决方法

状态码:406,请求头(Request Headers)中看到Accept优先是application/json格式,而响应头(Response Hraders)中却发现返回信息的格式是“text/html”,前台无法解析,需将结果转换成json格式返回给前台。

解决方案:

jackson开源工具(springMVC天然支持)

导入jackson-core和jackson-mapper-asl的依赖包,如果你是maven工程,在pom加入

 <!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-core -->
    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-core</artifactId>
      <version>2.1.4</version>
    </dependency>

      <!-- https://mvnrepository.com/artifact/org.codehaus.jackson/jackson-mapper-asl -->
      <dependency>
          <groupId>org.codehaus.jackson</groupId>
          <artifactId>jackson-mapper-asl</artifactId>
          <version>1.9.12</version>
      </dependency>

此时还需要关注springMVC的一个配置,具体原因请看原理解析。

原理解析:

为什么只要导入jar就好了呢?是因为spring mvc 配置了 <mvc:annotation-driver/> 后 ,如果classpath 里面包含jackson 包,则自动注册MappingJackson2HttpMessageConverter,从而支持json 输出。

这是springMVC中的一句配置

<!-- 能支持springmvc更高级的一些功能,JSR303,快捷的ajax -->
<mvc:annotation-driven/>

且annotation-driver是被AnnotationDrivenBeanDefinitionParser解析,这里提供另外一篇博文,希望有所帮助。

spring mvc jackson 支持原理分析_taotoxht的专栏-CSDN博客_jackson 原理

结果展示:

Http状态码406(Not Acceptable) 错误问题解决方法

————————————————————————————————————————————————————

2020.01.30:,今天搭了另外一个项目的环境,项目依赖中已有jackson-annotations-*.jar,jackson-core-.jar,jackson-databind-.jar 包,打开注解驱动依然报406,如果有同学试了以上方案不行的话,可以试着尝试fastjson替代jackson,具体是:

引入jar包:

        <!-- https://mvnrepository.com/artifact/com.alibaba/fastjson -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.58</version>
        </dependency>

注解驱动配置为:

	<mvc:annotation-driven>
		<mvc:message-converters register-defaults="true">
			<!-- 配置Fastjson支持 -->
			<bean class="com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter">
				<property name="supportedMediaTypes">
					<list>
						<value>application/json</value>
						<value>text/html;charset=UTF-8</value>
					</list>
				</property>
<!--				<property name="features">
					<list>
						<value>WriteMapNullValue</value>
						<value>QuoteFieldNames</value>
					</list>
				</property>-->
			</bean>
		</mvc:message-converters>
	</mvc:annotation-driven>

结果: 

Http状态码406(Not Acceptable) 错误问题解决方法

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/148717.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 二叉树的前中后和层序遍历详细图解(递归和非递归写法)「建议收藏」

    二叉树的前中后和层序遍历详细图解(递归和非递归写法)「建议收藏」我家门前有两棵树,一棵是二叉树,另一棵也是二叉树。遍历一棵二叉树常用的有四种方法,前序(PreOrder)、中序(InOrder)、后序(PastOrder)还有层序(LevelOrder)。前中后序三种遍历方式都是以根节点相对于它的左右孩子的访问顺序定义的。例如根-&gt;左-&gt;右便是前序遍历,左-&gt;根-&gt;右便是中序遍历,左-&gt;右-&gt;根…

  • MATLAB GUI设计快速入门实例「建议收藏」

    MATLAB GUI设计快速入门实例「建议收藏」时间:2019.11.27目的:课题需要设计一个界面为了实现课题的一个功能,需要设计一个图形界面,因此使用matlabGUIDE进行设计,但前期没有接触过,因此通过实例练习,理解MATLABgui设计相关知识。一、几个GUI设计需要了解的知识1、进入GUI设计界面:在命令行输入guide,创建一个空白的GUI,保存即可,在保存目录下会生成两个文件(.fig和.m)。然后进入编辑界面…

  • H2内存数据库的函数「建议收藏」

    每个数据库为了使用者的查询简便性以及使用效率,都有专门提供一些函数给使用者进行使用,H2也同样如此,虽然没有oracle那么多强大的函数,但是一般需求的使用还是能够满足,下面就简单介绍下都有哪些函数一、函数的分类以及名称1、聚合函数(AggregateFunctions) AVGBOOL_ANDBOOL_ORCOUNTGROUP_CONCAT MAXMIN…

  • 解决Win10系统图标变白[通俗易懂]

    解决Win10系统图标变白[通俗易懂]解决因为安装路径文件名更改导致图标变白

    2022年10月19日
  • gridbagconstraints什么意思_gridbaglayout布局

    gridbagconstraints什么意思_gridbaglayout布局GridBagConstraints的具体参考为:http://download.oracle.com/technetwork/java/javase/6/docs/zh/api/java/awt/GridBagConstraints.html下面是构造函数:publicGridBagConstraints(intgridx,…

  • 浅谈大数据建模「建议收藏」

    浅谈大数据建模「建议收藏」前言:建模的过程和方法,不断地被开发和完善,你可能会说不同的数据类型,不同的业务场景,不同的需求,都会有不同的建模方法,我很赞同。但是我想说,不管你的数据是什么,要在大数据中建立自己的数据模型这其中的套路还是有规律可寻的。一.数据准备二.执行探索性数据分析三.建立初始模型四.模型迭代构建数据准备:在大数据计算中从来不嫌数据太多,相反的数据越多越好。只要数

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号