javascript - ajax后台跳转到了其他页面,还报错
问题描述
ajax执行后跳转到后台处理,处理完却跳转到了其他页面。
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) { } }); });
按钮
<button class='get-code'>测试</button>
后台
@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;}
控制有输出,说明进来了,
最后却跳转到了其他页面
控制台还报错了
问题解答
回答1:简单的看了下,你后台的随机数已经打出来了,说明Controller层执行了。你既然用@ResponseBody了,为什么不直接返回你的随机数,result! 其次,根据你的回答,处理完却跳转到了其他页面。 这个问题,应该不会跳转的,因为成功请求后端数据拿到,你应该在ajax的success里,获取你要的数据,即result。事实上你的success里什么也没执行啊!个人理解^~^
回答2:谢谢大家的答案, 由于是svn管理项目,昨天同事不小心删了同页面的一个form表单的</form>,导致出现的问题
回答3:你为什么把生成的验证码放session里,直接把数据返回给那个ajax方法不就行了吗?ajax里success方法会接收到返回数据的。
相关文章: