springboot security post提交ajax请求遇到403错误解决方法

其实简而言之,就是csrf有问题。我们需要在html中添加一些东西

在head中添加2个meta

<meta name="_csrf" th:content="${_csrf.token}"/>
    <meta name="_csrf_header" th:content="${_csrf.headerName}"/>

对于ajax请求

如下是一个示例,可以在script中添加一个function

 $(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);
            });

        })
<script>
$(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);
            });

        })
        $(function () {
            // + 绑定点击事件
            $("span[id=add]").click(function () {
                //获取id
                var workerId = $(this).attr("class");
                var workerSalary = $(this).next().text();
                //计算调整后的工资
                workerSalary = parseInt(workerSalary);
                workerSalary += 100;
                $(this).next().text(workerSalary);
                $.ajax({
                    url:'/worker/addSalary',
                    data:{
                        wid:workerId,
                        workerSalary:workerSalary
                    },
                    method:"POST",
                    success:function (data) {
                        if(data == "OK"){
                            alert("工资调整成功");
                        }else {
                            alert("工资调整失败");
                        }
                    }
                })
            })
        })
        </script>

你可能感兴趣的:(springboot,ajax,java,前端,javascript,springboot)