Nachdem Ajax ausgeführt wurde, springt es zur Hintergrundverarbeitung, aber nach der Verarbeitung springt es zu anderen Seiten.
ajax:
$(".get-code").click(function(){
var user_number=$("input[name=user_number]").val();
alert(user_number);
$.ajax({type : "post",
url : "user/validate",
dataType : "json",
data : {"phone" : user_number},
success : function(data) {
}
});
});
Knopf
<button class="get-code">测试</button>
Backstage
@ResponseBody
@RequestMapping("/validate")
public Object validate(HttpSession session,String phone){
Integer result1=(int)((Math.random()*9+1)*100000);
String str=Integer.toString(result1, 10);
String result= str; /*Sampler.samlerInfo(phone, null);*/
System.out.println("随机数为:"+result);
session.setAttribute("result", result+"");
return null;
}
Die Steuerung hat eine Ausgabe, die anzeigt, dass sie eingegangen ist,
Am Ende ist es auf andere Seiten gesprungen
Die Konsole hat auch einen Fehler gemeldet
简单的看了下,你后台的随机数已经打出来了,说明Controller层执行了。你既然用@ResponseBody了,为什么不直接返回你的随机数,result! 其次,根据你的回答,处理完却跳转到了其他页面。 这个问题,应该不会跳转的,因为成功请求后端数据拿到,你应该在ajax的success里,获取你要的数据,即result。事实上你的success里什么也没执行啊!个人理解^~^
谢谢大家的答案, 由于是svn管理项目,昨天同事不小心删了同页面的一个form表单的</form>,导致出现的问题
你为什么把生成的验证码放session里,直接把数据返回给那个ajax方法不就行了吗?ajax里success方法会接收到返回数据的。