服務器端返回的是文本,客戶端得到文本后將文本轉換成json就可以了,服務器端將對象轉換成json 的文本形式,並且需要設定文本的類型為text/plain,charset=UTF-8
所以在 application-context 中添加StringConverter及jsonConvert的bean 以及servlet mvc 注解處理適配器
<bean id="stringConverter"
class="org.springframework.http.converter.StringHttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<value>text/plain;charset=UTF-8</value>
</list>
</property>
</bean>
<!-- 用於將對象轉換為 JSON -->
<bean id="jsonConverter"
class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"></bean>
<bean
class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
<property name="messageConverters">
<list>
<ref bean="stringConverter" />
<ref bean="jsonConverter" />
</list>
</property>
</bean>
在Controller 函數中要表明 返回值是ResponseBody的內容
@RequestMapping("/ajax2.do")
public @ResponseBody UserInfo ajax2(String userId){
System.out.println(userId);
UserInfo user = new UserInfo();
if("1001".equals(userId)){
user.setUserId(1001);
user.setUserName("悟空");
}else{
user.setUserId(1002);
user.setUserName("八戒");
}
return user;
}
Js 代碼
$("#but2").click(function(){
$.post("ajax2.do",{userId:$("#userId2").val()},function(data){
$("#info2").html(data.userId+"---"+data.userName);
},"json");
});
