【发布时间】:2017-05-12 12:46:15
【问题描述】:
我有一个 Spring Boot 应用程序的注册端点。 UI 是一个 React 单页应用程序。
我想让 SPA 应用重定向到“/login”(发出 GET 请求)。
我应该怎么做?
我尝试了以下两种方法:
第一种方法不起作用,因为 postman 中的响应 http 代码是 200 并且正文只包含“redirect:/login”
@RequestMapping(value = "/signup", method = RequestMethod.POST)
public String signup(@RequestBody CustomUserDetails user, HttpServletResponse response) {
String userName = user.getUsername();
logger.debug("User signup attempt with username: " + userName);
try{
if(customUserDetailsService.exists(userName))
{
logger.debug("Duplicate username " + userName);
return "redirect:/login";
} else {
customUserDetailsService.save(user);
authenticateUserAndSetSession(user, response);
}
} catch(Exception ex) {
}
return "redirect:/login";
}
我也尝试了以下方法。但它会引发Method Not Allowed 异常。因为当请求类型为POST 时,我有一个login 的控制器
@RequestMapping(value = "/signup", method = RequestMethod.POST)
public ModelAndView signup(@RequestBody CustomUserDetails user, ModelMap model, HttpServletResponse response) {
String userName = user.getUsername();
logger.debug("User signup attempt with username: " + userName);
try{
if(customUserDetailsService.exists(userName))
{
logger.debug("Duplicate username " + userName);
return new ModelAndView("redirect:/login", model);
} else {
customUserDetailsService.save(user);
authenticateUserAndSetSession(user, response);
}
} catch(Exception ex) {
}
return new ModelAndView("redirect:/redirectedUrl", model);
}
我应该如何处理这个重定向?最佳做法是什么?
【问题讨论】: