繁体   English   中英

Spring MVC:@ResponseBody中的重定向

[英]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(); 例如,从类似的帖子,检查这个答案,

重定向Ajax Jquery调用

一个想法是让浏览器知道它应该通过向生成的对象添加重定向变量并在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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM