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>
