好的,经过所有这些努力之后,我得到了以下结果。
我将
fail方法添加到Ajax构造中并获得以下消息:
“无法在’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); }});
有了它,它就像一种魅力。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)