[英]Spring MVC: Redirect in @ResponseBody
我想在spring mvc方法中重定向到另一个.jsp。 我不想使用javascripts方法,如:window.location.replace(url)。
我的方法:
@RequestMapping(value= "loginUser", method=RequestMethod.POST)
public @ResponseBody String loginUser (@RequestParam("name") String name, @RequestParam("password") String password){
return "";
}
当您的请求需要json响应时,您无法从Spring重定向。 您可以为重定向设置参数,以便在输入成功块时可以使用window.location.reload();
检查要重定向的参数window.location.reload();
。 例如,从类似的帖子,检查这个答案,
一个想法是让浏览器知道它应该通过向生成的对象添加重定向变量并在JQuery中检查它来重定向
$(document).ready(function(){ jQuery.ajax({ type: "GET", url: "populateData.htm", dataType:"json", data:"userId=SampleUser", success:function(response){ if (response.redirect) { window.location.href = response.redirect; } else { // Process the expected results... } }, error: function(xhr, textStatus, errorThrown) { alert('Error! Status = ' + xhr.status); } }); });
您也可以为重定向添加响应头,如response.setHeader("REQUIRES_AUTH", "1")
和jQuery成功,
success:function(response){ if (response.getResponseHeader('REQUIRES_AUTH') === '1'){ window.location.href = 'login.htm'; } else { // Process the expected results... } }
请参阅类似的问题: Spring Controller重定向到另一个页面
包含一个HttpServletResponse
参数并调用sendRedirect(String)
。
或者,根本不要使用@ResponseBody
,并返回要使用的模型/视图。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.