您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Spring Security CSRF令牌不适用于AJAX

Spring Security CSRF令牌不适用于AJAX

好的,经过所有这些努力之后,我得到了以下结果。

我将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);
    }
});

有了它,它就像一种魅力。

Java 2022/1/1 18:15:49 有441人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶