假设我理解你的问题,重定向将采取AJAX调用的范围内进行 - 所以JQuery AJAX代码将遵循重定向并接收从/another controller here得到的响应。这不会触发完整页面刷新,但JQuery AJAX代码可以在当前页面中呈现响应。
要在成功登录时更改整个页面,最好不要在此屏幕上使用AJAX。
另外,你可以返回一些指标来告诉JQuery重定向。例如:
@RequestMapping(value = "/signin", method = RequestMethod.POST)
public @ResponseBody
ModelAndView loginUser(@RequestParam(value = "userName") String userName,
@RequestParam(value = "password") String password,
ModelAndView model) {
on success login
ModelAndView modelAndView = new ModelAndView("same page");
modelAndView.addObject("redirectUrl", "/another controller here");
return modelAndView;
on failure login
return new ModelAndView("same page");
然后有一些JavaScript在same page,看起来对于redirectUrl存在并触发一整页的重定向(如果存在)。
var redirect = '${redirectUrl}';
if (redirect) {
window.location.replace(redirect);
}