我正在创建Spring mvc app。我通过AJAX向控制器提交JSON字符串。我想要的是将页面重定向到不同的JSP页面。
现在我从控制器返回视图,但不是重定向,而是返回对先前AJAX请求的响应。
@RequestMapping("/hello")
public String hello() {
return "powerseries";
}
$(document).ready(function(){
$('#getData').click(function(){
var aa=JSON.stringify(answer);
$.ajax({
type: "POST",
url: "hello",
contentType: "application/json",
dataType:'json',
data:aa,
cache: false,
processData:false,
success: function(status){
console.log("Entered",status);
},
error:function(error){
console.log("error",error);
}
});
});
});
console.dir(answer);
答案 0 :(得分:1)
当您使用AJAX时,您的MVC应该返回一个特殊的JSON响应。
例如:
@RequestMapping("/hello")
@ResponseBody
public Map hello() {
m.put('my_redirect', 'the new url');
return m;
}
然后在你的AJAX处理程序中处理这个响应。使用javascript的window.location.href = resp.my_redirect;
转到新网址。
答案 1 :(得分:0)
如果要重定向到其他jsp页面,请在控制器方法中使用redirect
。
@RequestMapping("/hello")
public String hello() {
// return "powerseries";
return "redirect:powerseries";
}
// Add method to controller .
@RequestMapping("/powerseries")
public String returnPowerseries() {
return "powerseries";
}
如果您想完全更改文档html,请使用$("html").html(response);
。