Ajax访问controller,通过controller return来重定向跳转页面失败
Ajax回调函数中再次使用Ajax访问controller,通过controller return来重定向跳转页面失败
$.ajax({
type:"post",
url:"setNewPassword",
data:{
id:$("#id").val(),
newPassword: $("#password").val()
},
success:function(data){
if(data==1){
layer.msg("修改成功,即将跳转至首页登录。")
$.ajax({
type:"post",
url:"jumpToFindePassword2"
})
}else{
layer.alert("修改失败(1),请联系我们")
}
},
error:function(){
alert("修改失败(2),请联系我们");
}
});
Controller
@RequestMapping(value = "/jumpToFindPassword2")
public String jumpToLogin() {
System.out.println("jumpToLogin");
return "FindPassword2";
}
问题
页面无法跳转是因为虽然没有@ResponseBody,但是ajax访问controller ,依然会return给ajax
解决办法
如果是在webapp目录下,可直接在success和error 回调函数中用js跳转。
layer.msg("修改成功,即将跳转至首页登录。")
setTimeout(function(){
$(location).attr("href","/stu-info_manage/")
},2000);
如果是在WEB-INF下,则可以在success下访问专门跳转目标页面的controller来重定向,需要传递的数据可以通过session来传递。
success:function(data){
$(location).attr("href","/stu-info_manage/jumpToFindPassword2_2")
}
@RequestMapping(value = "/jumpToFindPassword2_2",method = RequestMethod.GET)
public String jumpToFindPassword2_2(){
return "FindPassword2";
}