在Cakephp3中,启用Csrf组件时。我如何在ajax调用中使用它。在beforeSend
ajax的此参数中,csrf令牌设置在标头中。什么是价值csrfToken
。由于它给出了错误
未定义csrfToken
beforeSend: function(xhr){
xhr.setRequestHeader('X-CSRF-Token', csrfToken);
},
另外,如何为某些ajax调用禁用Csrf组件。
CSRF组件将当前令牌写入,作为请求参数_csrfToken
,您可以通过request objects
param()
方法(或getParam()
从CakePHP 3.4开始)获取它:
setRequestHeader('X-CSRF-Token', <?= json_encode($this->request->param('_csrfToken')); ?>);
可以通过从控制器事件管理器中删除CSRF组件来禁用它。您必须确定需要执行什么条件,例如针对特定操作,例如:
public function beforeFilter(\Cake\Event\Event $event)
{
parent::beforeFilter($event);
if ($this->request->param('action') === 'actionXyz') {
$this->eventManager()->off($this->Csrf);
}
}
如果您使用的是CSRF中间件,则令牌仍可作为名为的请求参数使用_csrfToken
,禁用中间件,但工作方式有所不同,请参见例如 [Cakephp3.5.6禁用控制器的CSRF中间件]
也可以看看
问题内容: 我正在使用Scala Play!2.6框架,但这可能不是问题。我正在使用他们的Javascript路由- 似乎可以正常工作,但出现了问题。我有一个带有CSRF令牌的表单,在渲染时会产生这种情况: 这大概是我的AJAX: 但是,当我发布此消息时,我从服务器返回了未经授权的响应,并且IntelliJ中的控制台告诉我CSRF检查失败。如何在请求中传递CSRF令牌? 问题答案: 好的,经过几个
优化ajax请求的可能方法是什么? 注意:-我定期发送一些ajax请求(比如一秒钟一次),一些ajax是基于事件发送的
我们正试图通过使用CSRFGuard将CSRF保护添加到现有的java web应用程序中。我们遵循了OWASP的令牌注入指南,这让我们走了大部分路。我们使用的是动态DOM操作方法,发现大多数URL/forms/AJAX调用都使用插入的CSRF令牌正确格式化。我们的问题是: 某些页面的一部分是由返回jspfs的AJAX调用动态生成的。返回的jspfs具有从不受CSRFGuard DOM操纵的链接,因
问题内容: 我创建了一个包含很多字段的表单,用户可以在其中创建无限的字段。如果用户将更多时间花在CSRF令牌上,则它将过期,并且当他单击提交LARAVEL时,将返回错误CSRF令牌不匹配。那么,如何使用ajax调用获取新的CSRF令牌,以便可以在固定的时间间隔内更新CSRF?我无法刷新或重新加载表格。 问题答案: 只需将其添加到您的脚本中 并确保已将令牌添加到元标记中,如下所示。 希望这对您有用。
我正在尝试通过Ajax从数据库中删除数据。 HTML: 我的ajax代码: 这是我要从数据库中提取数据的查询... 但当我单击“删除链接数据未删除”并显示csrf_token不匹配时...
问题内容: 我对MVC项目的以下详细信息有疑问。 当我尝试将jquery ajax请求与加载面板(例如旋转gif(甚至文本))一起使用时,从提琴手观察到我收到错误消息 所需的反伪造表单字段“ __RequestVerificationToken”不存在。 如果我 在POST动作方法上发表评论 并使用加载面板,它工作正常,我想知道为什么会收到此错误。 我什至使用了查询字符串 还是我出错了 防伪令牌无