【发布时间】:2016-10-30 22:28:42
【问题描述】:
我有一个用 Angular 编写的前端,它在 localhost:3002 上运行。 我有一个用 Spring-boot 编写的后端,它在 localhost:8080 上运行。
我添加了一个过滤器来处理 CORS(我在 SO 上找到并适应了我的需要):
@Component
public class CORSFilter implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
}
@Override
public void doFilter(ServletRequest request, ServletResponse res, FilterChain chain) throws IOException, ServletException {
HttpServletResponse response = (HttpServletResponse) res;
response.setHeader("Access-Control-Allow-Origin", "http://localhost:3002");
response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE, PUT");
response.setHeader("Access-Control-Max-Age", "3600");
response.setHeader("Access-Control-Allow-Credentials", "true");
response.setHeader("Access-Control-Allow-Headers", "x-requested-with");
chain.doFilter(request, response);
}
public void destroy() {}
}
当我进行身份验证时,我可以看到服务器发送了一个 cookie:
此 cookie 不会随以下请求一起发送。这导致 401 响应:
我查看了 chrome 控制台的“资源”面板,发现没有存储任何 cookie。
有什么想法吗?
【问题讨论】:
标签: javascript java angularjs spring-boot spring-security