HttpServletResponse重定向不起作用,但是从jsp页面进行重定向

时间:2019-01-31 00:15:58

标签: jsp

我有一个带有两个API的Spring项目。第一个API将重定向到我的WEB-INF文件夹中的JSP页面。然后,此JSP会将一些数据发布到我的第二个API中。从第二个API,我试图根据我收集的数据重定向到另一个站点。最初,我的控制器带有以下代码:

String redirectURL = "https://www.my.app.com";
Cookie cookie = new Cookie("token", map.get("token_value"));
cookie.setPath("/");
cookie.setDomain(".my.app.com");
cookie.setHttpOnly(true);
servletResponse.addCookie(cookie);
servletResponse.sendRedirect(redirectURL);

但是,当我尝试基于“重定向已被CORS策略阻止:无'Access-Control-Allow-Origin'标头”(我不拥有登陆网站,并且我正在使用localhost:8080进行测试)。所以,我然后加入一个报头用于与所述响应servletResponse.addHeader("Location", redirectURL),并在从我的交我的JSP回调函数,我使用

success: function(data, status, xhr) {
            window.location.replace(xhr.getResponseHeader("Location"));
        }

可以正确重定向到URL,但是我丢失了cookie。我宁愿不要在我的jsp页面上进行重定向,我在做什么错?我也尝试在成功回调中插入第二个AJAX调用,以获取具有cookie的URL,但存在同样的问题。因此,GET调用被“在请求的资源上没有'Access-Control-Allow-Origin'标头出现”阻止。有没有解决的办法?如果我在重定向到JSP之前重定向到“ my.app.com” URL,则它可以工作。只有当我进入JSP之后,我才能进行get调用。

0 个答案:

没有答案