gpt4 book ai didi

javascript - 未存储 JSESSIONID cookie

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:14:32 31 4
gpt4 key购买 nike

我有一个用 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:

enter image description here

此 cookie 不会随以下请求一起发送。这导致 401 响应:

enter image description here

我查看了 chrome 控制台的“资源”面板,发现没有存储 cookie。

有什么想法吗?

最佳答案

在您配置 $httpProvider 的文件中,添加此行以指定您希望通过跨站点请求发送凭据:

$httpProvider.defaults.withCredentials = true;

通常,AngularJS 会自动将这些 cookie 与请求一起发送(对于同源请求),但由于您的请求是跨站点的,因此您必须手动配置它。

关于javascript - 未存储 JSESSIONID cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38078846/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com