gpt4 book ai didi

spring - 如何在单页应用程序(spring security)中提供 CSRF Token?

转载 作者:行者123 更新时间:2023-12-03 17:11:05 24 4
gpt4 key购买 nike

当我尝试使用 ajax 加载页面的一部分时出现 403 错误

Invalid CSRF Token 'null' was found on the request parameter '_csrf' or header 'X-CSRF-TOKEN'.

Spring Security FAQ 告诉我们

If an HTTP 403 Forbidden is returned for HTTP POST, but works for HTTP GET then the issue is most likely related to CSRF. Either provide the CSRF Token or disable CSRF protection (not recommended).

那么,如何才能做到这一点?

function getPage(url) {
$.ajax({
type: 'POST',
url: url,
data: {_csrf: "??"},
success: function (data) {
loadPage(url, data);
}
});
}

最佳答案

您可以从存储在您客户端的 cookie 中获取 token 。为此你必须使用像这样的 cookie 服务: https://www.npmjs.com/package/angular2-cookie

写一个这样的函数来获取 token :

getCookie(){
return this._cookieService.get("token-name");
}

最后将 token 添加到请求头中:

doSomething(token){
var json = JSON.stringify({});
var headers = new Headers();
headers.append('Content-Type','application/json');
headers.append('token-name', token);
return this._http.post('http://localhost:8080/doSomething', json, {
headers: headers
}).map(res => res.text()
);
}

这解决了我的问题

关于spring - 如何在单页应用程序(spring security)中提供 CSRF Token?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27824273/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com