直接看代码
//jsp中的
$.ajax({
url:"./verify.action",
type:"POST",
dataType:"text",
success:function(data){
//不使用evaluation()方法单独处理,jQuery已经帮助我们将数据封装成js对象了
if(data==$("#randCode").val()){
$("#from1").submit();
}else{
$("#codeImage").attr("src","./image.action?"+new Date);
alert("验证码输入有误!");
}
}
});
//Java中的@Controller
@ResponseBody
@RequestMapping(value="/verify.action" ,method =RequestMethod.POST,produces="application/json;charset=UTF-8" )
public String verify(HttpServletRequest request,HttpServletResponse response)throws Exception{
HttpSession session = request.getSession();
String value =session.getAttribute("data").toString();
return value;
}
现在说说自己遇到的问题,以前学的ajax是把对象封装成json,再由前面的jsp解析出来,我这个问题在于我只想返回一个字符串,不想再把这个字符串放在一个对象里了,我不可能因为这个原因单独创建一个对象占用资源,我看了好多网上的,是由JSONObject.put(String name, Object object),因为SSM框架的注解有@ResponseBody,把返回的封装成json,所以我也没做,我就去看ajax的参数解释,我发现dataType有个text类型,我就试了试,没想到成功了,所以留个记录
还有个忽略的,那就是如果用JQuery获取input中的值,用$("#id").val(),一定要记住val后面有小括号