Spring mvc ajax post 415 Unsupported Media Type

来源:互联网 发布:税友软件怎么样 编辑:程序博客网 时间:2024/06/16 18:30

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        });
0 0
原创粉丝点击