不支持内容类型“text/xml”

Content type 'text/xml' not supported

提问人:jang 提问时间:10/27/2023 最后编辑:jang 更新时间:10/27/2023 访问量:33

问:

我正在使用springframework 并对此有疑问!

$.ajax({
      type: "POST",
      url: "/updateCell.do",
      data: JSON.stringify(data),
      contentType: "application/json; charset=UTF-8",
      success: function(response) {
         sweetAlert('success','It has been successfully edited.','');
      },
      error: function(xhr, status, error) {
         sweetAlert('error','A problem has been detected.','');
      }
});

当我尝试这个具有“application/json”内容类型的ajax时

org.springframework.web.HttpMediaTypeNotSupportedException: Content type 'application/json;charset=UTF-8' not supported

这个错误发生了...... 所以我加上

<property name="messageConverters">
            <list>
                <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"/>
            </list>
        </property>

这到“调度程序-servlet.xml” 它奏效了!

然后我尝试发送ajax,它具有“text/xml”内容类型

var wfsTransactionRequest =
          '<wfs:Transaction ' + 
          'xmlns:wfs="http://www.opengis.net/wfs" ' +
          'xmlns:gml="http://www.opengis.net/gml" ' +
          'xmlns:ogc="http://www.opengis.net/ogc" ' +
          'xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ' +
          'xmlns:feature="http://vndan" ' +
          'service="WFS" version="1.2.0" ' +
          'xsi:schemaLocation="http://www.opengis.net/wfs ' +
          'http://schemas.opengis.net/wfs/1.0.0/WFS-transaction.xsd">' +
              '<wfs:Update typeName="vndan:' + tableName + '">' +
                  '<wfs:Property>' + 
                      '<wfs:Name>geom</wfs:Name>' + 
                      '<wfs:Value>' + geomXML + '</wfs:Value>' + 
                  '</wfs:Property>' +
                  '<ogc:Filter>' +
                    '<ogc:FeatureId fid="' + fid + '"/>' +
                '</ogc:Filter>' +
              '</wfs:Update>' +
          '</wfs:Transaction>';




    $.ajax({
        url: '/gis/wfs',
        type: 'POST',
        dataType: 'xml',
        data: wfsTransactionRequest,
        contentType: 'text/xml',
        success: function (data) {
            toastr.success('It has been successfully edited.');
        },
        error: function (xhr, status, error) {
            console.error(error);
        }
    });

喜欢这个。。。

但在这种情况下,错误发生了。 所以我加了Content type 'text/xml' not supported

<bean class="org.springframework.http.converter.xml.MappingJackson2XmlHttpMessageConverter" />

这到“调度程序-servlet.xml”,但没有任何变化。

当我删除时

<property name="messageConverters">
            <list>
                <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"/>
            </list>
        </property>

来自“调度程序-servlet.xml”,我可以发送具有文本/xml 内容类型的 ajax,但无法发送具有“application/json”内容类型的 ajax。

这些代码在另一个项目中运行良好,所以我不认为这是与服务器或其他事情有关的问题......

综上所述,我只能发送两种内容类型中的一种。 无论如何,我可以发送两个ajax吗?

这是我的“dispatcher-servlet.xml”:)

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns:p="http://www.springframework.org/schema/p"
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:mvc="http://www.springframework.org/schema/mvc"
        xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
                http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd
                http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd">

    <context:component-scan base-package="egovframework">
        <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
        <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Service"/>
        <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Repository"/>
    </context:component-scan>
    
    <context:component-scan base-package="vndan">
        <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
        <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Service"/>
        <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Repository"/>
    </context:component-scan>

    <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
        <property name="webBindingInitializer">
            <bean class="egovframework.example.cmmn.web.EgovBindingInitializer"/>
        </property>
        <property name="messageConverters">
            <list>
                <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"/>
                <bean class="org.springframework.http.converter.xml.MappingJackson2XmlHttpMessageConverter" />
            </list>
        </property>
    </bean>
    <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping">
        <property name="interceptors">
            <list>
                <ref bean="localeChangeInterceptor" />
            </list>
        </property>
    </bean>
    
    
    <bean id="localeResolver" class="org.springframework.web.servlet.i18n.SessionLocaleResolver" />

    <bean id="localeChangeInterceptor" class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor">
        <property name="paramName" value="language" />
    </bean>

    <bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
        <property name="defaultErrorView" value="cmmn/egovError"/>
        <property name="exceptionMappings">
            <props>
                <prop key="org.springframework.dao.DataAccessException">cmmn/dataAccessFailure</prop>
                <prop key="org.springframework.transaction.TransactionException">cmmn/transactionFailure</prop>
                <prop key="egovframework.rte.fdl.cmmn.exception.EgovBizException">cmmn/egovError</prop>
                <prop key="org.springframework.security.AccessDeniedException">cmmn/egovError</prop>
            </props>
        </property>
    </bean>

    <bean class="org.springframework.web.servlet.view.UrlBasedViewResolver" p:order="1"
        p:viewClass="org.springframework.web.servlet.view.JstlView"
        p:prefix="/WEB-INF/jsp/vndan/" p:suffix=".jsp"/>

    <bean class="org.springframework.web.servlet.view.BeanNameViewResolver" id="viewResolver" p:order="0" />
    <bean class="org.springframework.web.servlet.view.json.MappingJackson2JsonView" id="jsonView">
        <property name="contentType" value="application/json;charset=UTF-8"/>
    </bean>
    
    <!-- For Pagination Tag -->
    <bean id="imageRenderer" class="egovframework.example.cmmn.web.EgovImgPaginationRenderer"/>

    <bean id="paginationManager" class="egovframework.rte.ptl.mvc.tags.ui.pagination.DefaultPaginationManager">
        <property name="rendererType">
            <map>
                <entry key="image" value-ref="imageRenderer"/>
            </map>
        </property>
    </bean>
    <!-- /For Pagination Tag -->

    <mvc:view-controller path="/cmmn/validator.do" view-name="cmmn/validator"/>
    <mvc:default-servlet-handler />
    <mvc:annotation-driven />
    
</beans>
JSON ajax Spring 文本 内容类型

评论


答: 暂无答案