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的配置。不過爲了便於理解我將這兩個都加上。

果真修改之後便可成功經過。

相關文章
相關標籤/搜索