前后端分离架构中,因SpringSecurity的CSRF无法提交POST请求

发布于 2022-09-07 21:52:07 字数 679 浏览 19 评论 0

因使用了SpringSecurity,默认是打开了CSRF功能,如果在前端页面发起POST请求,会报403错误,原因是SpringSecurity的CSRF的问题。网上查找解决方法和看官方文档只写了两种解决方法
1、直接关闭CSRF功能。
2、如果使用JSP页面的话在head标签中添加获取CSRF token,并且在ajax请求中添加令牌

<!-- default header name is X-CSRF-TOKEN -->
<meta name="_csrf" content="${_csrf.token}"/>
<meta name="_csrf_header" content="${_csrf.headerName}"/>



$(function () {
    var token = $("meta[name='_csrf']").attr("content");
    var header = $("meta[name='_csrf_header']").attr("content");
    $(document).ajaxSend(function(e, xhr, options) {
        xhr.setRequestHeader(header, token);
    });
});

但如果是前后端分离的项目,那么要怎样获取CSRF token呢,因此想请教一下各位前辈

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

深爱不及久伴 2022-09-14 21:52:07

可以在ajax或form提交之前通过接口获取csrf_token,并追加到header或parameter中,然后一并提交

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文