【发布时间】:2019-01-30 17:05:01
【问题描述】:
在使用 Ajax 发布请求时,我一直在努力让我的 CSRF 工作。 我确实有多个使用相同 CSRF 令牌的请求。但问题是它已经在第一个被执行时失败了。 (加载页面时只有 1 个触发器)
代码的简要概述:
Ajax 调用:
var settings = {
"async": true,
"crossDomain": true,
"url": "http://localhost:3000/locations",
"method": "POST",
"headers": {
"{{ nameKey }}": "{{ name }}",
"{{ valueKey }}": "{{ value }}",
"Cache-Control": "no-cache"
}
}
$.ajax(settings).done(function (Data) {
中间件:
$container['csrf'] = function ($c) {
$csrf = new \Slim\Csrf\Guard;
$csrf->setPersistentTokenMode(true);
return $csrf;
};
$app->add($container->get('csrf'));
我一直在寻找如何解决这个问题。几乎在我看到的所有地方,他们都告诉将令牌持久模式设置为 true,这将解决问题。然而,当我尝试这个时,我得到了同样的错误,我尝试了多种方法,比如在请求之前重新生成令牌,但此时似乎没有任何效果。
如果有人能帮我解决这个问题,我会很高兴。
【问题讨论】: