问题描述:
使用场景:使用srpingmvc框架,使用AJAX请求发生错误,
出现以下问题
1、访问后台url,前台提示406 错误
2、ajax方法中,一直进入error的回调方法中,不会进入success回调中,
3、返回的类型,一直是object,而不是json。
贴上我的ajax请求。
<span style="white-space:pre"> </span>$.ajax({
type : "POST",
url : "search",
data : data,
dataType : "json",
contentType : 'application/x-www-form-urlencoded; charset=UTF-8',
success : function(value) {
var p = $("<p class='lead' id='context'>" + value
+ "</p>");
$("#content").prepend(p);
},
error : function(json) {
alert("出错了。。。");
}
<span style="white-space:pre"> </span>})
通过搜索,发现仍然是spring的配置文件存在错误,在前后太交互的同时,传输的格式并没有定义成json
更改配置文件
</bean>
<bean id="exceptionHandlerExceptionResolver"
class="org.springframework.web.servlet.mvc.method.annotation.ExceptionHandlerExceptionResolver">
<property name="messageConverters">
<list>
<bean
class="org.springframework.http.converter.ByteArrayHttpMessageConverter" />
<bean id="mappingJacksonHttpMessageConverter"
class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<value>application/json;charset=UTF-8</value>
<value>text/html;charset=UTF-8</value>
</list>
</property>
<property name="objectMapper">
<bean class="com.fasterxml.jackson.databind.ObjectMapper">
<property name="serializationInclusion">
<value type="com.fasterxml.jackson.annotation.JsonInclude$Include">NON_NULL</value>
</property>
</bean>
</property>
</bean>
</list>
</property>
</bean>
PS:配置文件中有一个jackson的包需要下载,所以在pom文件中添加一个新的依赖
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.4.0</version>
</dependency>
修改之后能成功访问