在Ajax调用后重定向到页面,该页面在Spring控制器中确定URL

时间:2019-01-30 21:15:43

标签: java ajax spring jsp redirect

在我的JSP页面上,我向Spring控制器发布了一个Ajax帖子。我使用发布的数据来确定应该重定向到的位置。所以我的代码如下:

@RequestMapping(value="/postFromJSP" method={RequestMethod.POST})
public void sendRedirect(HttpServletRequest request,
                         HttpServletResponse response,
                         @RequestBody MyAjaxData data) {

    RestResponse restResponse = determineRedirect(data);

    if (restResponse.getStatusCode()==302) {
       //redirect to URL from response
       Cookie cookie = generateCookie(restResponse.getJson());
       url = restResponse.getJson.getURL();
       response.addCookie(cookie);
       response.sendRedirect(url);
     }
  }

但是,在我的JSP页面中,当我检查网络流量时,看到了对重定向请求到指定URL的307响应,并且视图在我的JSP中没有变化。

我在做什么错?我需要在Ajax中添加成功功能来进行重定向吗?

1 个答案:

答案 0 :(得分:2)

像这样更改Spring Controller。

 @RequestMapping(value="/postFromJSP" method={RequestMethod.POST})
 public RestResponse sendRedirect(HttpServletRequest request,
                     HttpServletResponse response,
                     @RequestBody MyAjaxData data) {

RestResponse restResponse = determineRedirect(data);

return restResponse ;

}

在.js中的回调函数中处理响应