SpringMVC中AJAX请求出现406

这几天由于须要搭建SpringMVC,可是搭建完成之后发现使用@ResponseBody的ajax没法访问,老是出现406的问题。ajax

首先怀疑的是配置问题,通过查明,影响SpringMVC的@ResponseBody注解的是:spring

<mvc:annotation-driven />,我发现个人配置中存在这个注解。同时又使用Spring文档中的自动配置相关解析类的方式再进行测试,发现仍是没有解决问题。mvc

同时在网上找到相关问题,发现是缺失jackson的jar。app

   <dependency>
            <groupId>org.codehaus.jackson</groupId>
            <artifactId>jackson-core-lgpl</artifactId>
            <version>1.9.0</version>
        </dependency>
        <dependency>
            <groupId>org.codehaus.jackson</groupId>
            <artifactId>jackson-mapper-lgpl</artifactId>
            <version>1.9.0</version>
    </dependency>

因而加上该依赖,但是发现问题仍是没有解决。
测试

而后我就下载当前我使用的Spring版本的官方文档来看。ui

意外发现以下:spa

 Spring 4 requires the recent Hibernate Validator 4.3+, and support for Jackson has been focused on 2.0+ now (with Jackson 1.8/1.9 support retained for the time being where Spring 3.2 had it; now just in deprecated form).code

由于我用的是4.1.4的版本,因此已经不支持1.9如下的jackson了。orm

为了测试,我将我spring的版本改回3.2+的版本。发现ajax正常经过。所以又将版本改回,而后把jaskson的版本改成2.5xml

<dependency>

<groupId>com.fasterxml.jackson.core</groupId>

<artifactId>jackson-core</artifactId>

<version>2.5.0</version>

</dependency>

<dependency>

<groupId>com.fasterxml.jackson.core</groupId>

<artifactId>jackson-databind</artifactId>

<version>2.5.0</version>

</dependency>

其实只须要下面的databind便可,由于该配置会自动加上core的配置。不过为了便于理解我将这两个都加上。

果真修改之后便可成功经过。

相关文章
相关标签/搜索