ssm框架ajax傳送資料報錯Content type 'application/json' not supported
阿新 • • 發佈:2020-08-10
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>