【发布时间】:2015-11-15 10:17:00
【问题描述】:
当我从 Spring 3.1.1.RELEASE 迁移到 4.0.2 RELEASE 时,我不得不对 Spring 安全上下文进行一些更改。
除了 POST 注销请求外,几乎一切正常。
我可以将整行设置为 form method="POST" action="logout" 但随后我必须处理 Submit ,这与我们需要的样式完全不同。 我尝试通过 ajax 发送带有 csrf 数据的注销请求,但没有成功。 任何帮助是极大的赞赏。附言禁用 csrf 不是一种选择。
<!-- JSP -->
<meta name="_csrf" content="${_csrf.token}"/>
<!-- default header name is X-CSRF-TOKEN -->
<meta name="_csrf_header" content="${_csrf.headerName}"/>
<!--Anchor -->
<a id="loggg" href="logout">Logout1</a>
<!-- jquery -->
$("#loggg").click(function(e){
e.preventDefault();
var token = $("meta[name='_csrf']").attr("content");
var header = $("meta[name='_csrf_header']").attr("content");
$.ajax({
url : "logout",
method : "POST",
data :token ,
success : function(data) {
console.log("clicked");
},
error : function(data) {
console.log(data);
}
});
})
FireBug 开发者控制台返回:
403 Forbidden 2ms
"NetworkError: 403 Forbidden - http://localhost:8081/nekretnine/logout"
Object { readyState=4, responseText="<!DOCTYPE html><html>
<he...EASE</h3></body></html>", status=403, more...}
【问题讨论】:
标签: jquery ajax spring spring-security