前后端分离架构中,因SpringSecurity的CSRF无法提交POST请求
因使用了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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
可以在ajax或form提交之前通过接口获取csrf_token,并追加到header或parameter中,然后一并提交