1. 程式人生 > 實用技巧 >ssm框架ajax傳送資料報錯Content type 'application/json' not supported

ssm框架ajax傳送資料報錯Content type 'application/json' not supported

ajax程式碼:

var data = {
      "name":"aaa",
      "password":123
};

$.ajax({
      url:'/ems/test',
      data:JSON.stringify(data),
      type:'post',
      dataType:"json",
      contentType:'application/json;charset=utf-8',
      success:function(data){
            //其他邏輯
      }
})

controller程式碼:

@ResponseBody
@RequestMapping(value = "test",produces = "application/json";charset=utf-8")
public String test(@RequestBody Staff staff){
      //增刪改查
}

首先解決這個錯誤需要在ajax程式碼中新增

dataType:"json",
contentType:'application/json;charset=utf-8',

然後再pom.xml中新增依賴

        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>2.9.9</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-core</artifactId>
            <version>2.9.9</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-annotations</artifactId>
            <version>2.9.9</version>
        </dependency>

之後在springmvc.xml中加入配置

<!-- 設定json轉換器 -->
    <bean id="jsonConverter" class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
    </bean>
    <!-- 設定string轉換器 -->
    <bean id="stringConverter"
          class="org.springframework.http.converter.StringHttpMessageConverter">
        <property name="writeAcceptCharset" value="false" />

        <property name="supportedMediaTypes">
            <list>
                <value>text/html;charset=UTF-8</value>
            </list>
        </property>
    </bean>
    <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
        <property name="messageConverters">
            <list>
                <ref bean="stringConverter" />
                <ref bean="jsonConverter" />
            </list>
        </property>
    </bean>