我正在使用对Spring控制器的jQuery AJAX调用,并且根据任务结果,我要么在div中加载新内容,要么重定向页面。但我的重定向部分没有发生。我可以在STS控制台控制器中看到被调用但在浏览器中它永远不会被加载。
谁能告诉我我做错了什么?我是否以正确的方式使用AJAX和Spring控制器?
这是我的代码段:
A)AJAX电话
$('#someBtn').click(function(event) {
$.ajax({
type: 'POST',
url: '/someApp/someLoc.htm',
data: $('#someForm').serialize(),
success: function(response) {
$('#some-div').empty();
$('#some-div').html(response);
}
});
B)控制器
@RequestMapping(value = "/someApp/someLoc.htm", method = RequestMethod.POST)
public ModelAndView someTask(@ModelAttribute("someInfo") SomeInfoDto someInfo, BindingResult result) {
if(result.hasErrors()) {
return new ModelAndView("/myAppViewFolder/sameForm");
}
if(doSomethingGood()) {
return new ModelAndView("redirect:/someApp/otherController.htm");
} else {
return new ModelAndView("/myAppViewFolder/errorPage");
}
}
答案 0 :(得分:1)
您的代码未加载页面,因为这是ajax并且表单未提交,因此您的响应将仅在js函数中返回。它会更新您的表单,但不会导航页面。您需要根据响应在客户端重定向页面。
window.location.href