好的,经过所有这些努力之后,我得到了以下结果。
“无法在’XMLHttpRequest’上执行’setRequestHeader’:’$ {_ csrf.headerName}’不是有效的HTTP标头字段名称。”
Spring官方网站建议您必须在HTML文件中添加<sec:csrfMetaTags />
以下内容:<Meta name="_csrf" th:content="${_csrf.token}"/>
此后,您应该能够在JavaScript中访问这些属性,但是在我的情况下,我得到了undefined
和${_csrf.headerName}
。
最后一次尝试是从隐藏值中获取值(第24.5章:http ://docs.spring.io/autorepo/docs/spring-security/4.0.0.CI- SNAPSHOT/reference/htmlsingle/#the-csrfmetatags -tag)。
$(function () {
var token = $("input[name='_csrf']").val();
var header = "X-CSRF-TOKEN";
$(document).ajaxSend(function(e, xhr, options) {
xhr.setRequestHeader(header, token);
});
});
$.ajax({
url: "./delete/car",
type: "POST",
success:function(response) {
alert(response);
}
});
有了它,它就像一种魅力。