您的位置:首页 > 编程语言 > Java开发

Spring mvc ajax post 415 Unsupported Media Type

2016-08-23 14:25 225 查看
1很明显是客户端错误,于服务端无关。出现这个的问题在于,你想使用对象传参。

2.解决方案有二种:

1.ajax代码修改如下:

$.ajax({
type: 'POST',
contentType: 'text/javascript',
url: url + '?r=' + Math.random(),
data: JSON.stringify(datamodel),//这里要和后端对象属性对应
dataType: datatype ? datatype : 'json',
success: function (d) {
if (callbackSuccess != null) {
callbackSuccess(d);
}
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
callbackFailed(textStatus, XMLHttpRequest);
},
timeout: 30000
});


spring mvc配置文件:


<mvc:annotation-driven>
<mvc:message-converters register-defaults="false">
<bean class="org.springframework.http.converter.ByteArrayHttpMessageConverter"/>
<bean class="org.springframework.http.converter.StringHttpMessageConverter"/>
<bean class="org.springframework.http.converter.FormHttpMessageConverter"/>
<bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<!-- *****自定义JSON返回类型***** -->
<value>text/javascript;charset=UTF-8</value>
</list>
</property>
</bean>
</mvc:message-converters>

</mvc:annotation-driven>


2.需要在pom.xml中加jackson依赖

<dependency>
<groupId>org.glassfish.jersey.media</groupId>
<artifactId>jersey-media-json-jettison</artifactId>
<version>2.32.2</version>
</dependency>
ContentType设置成application/json  data:JSON.stringify()


修改ajax代码如下:

$.ajax({
type: 'POST',
// contentType: 'text/javascript',
contentType: 'application/json;charset=utf-8;',
url: url + '?r=' + Math.random(),
data: JSON.stringify(datamodel),
dataType: datatype ? datatype : 'json',
success: function (d) {
if (callbackSuccess != null) {
callbackSuccess(d);
}
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
callbackFailed(textStatus, XMLHttpRequest);
},
timeout: 30000
});
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  spring mvc 415 ajax post