热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

如何在Cakephp3中的ajax调用中定义CSRF令牌.另外,如何为某些ajax请求关闭CSRF

如何解决《如何在Cakephp3中的ajax调用中定义CSRF令牌.另外,如何为某些ajax请求关闭CSRF》经验,为你挑选了1个好方法。

在Cakephp3中启用Csrf组件时.我如何在ajax调用中使用它.在此beforeSend参数中,ajax csrf标记在标头中设置.什么是价值csrfToken.因为它给出了错误

csrfToken未定义

beforeSend: function(xhr){
    xhr.setRequestHeader('X-CSRF-Token', csrfToken);
},

另外,如何禁用某些ajax调用的Csrf组件.



1> ndm..:

CSRF组件将当前令牌写入,作为请求参数_csrfToken,您可以通过request objects param()方法(或getParam()从CakePHP 3.4开始)获取它:

setRequestHeader('X-CSRF-Token', 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,禁用中间件,但工作方式有所不同,请参见例如Cakecake 3.5.6为控制器禁用CSRF中间件

也可以看看

食谱>请求和响应对象>请求参数

食谱>控制器>组件> CSRF>使用CsrfComponent

食谱>控制器>组件> CSRF>为特定操作禁用CSRF组件


推荐阅读
author-avatar
mobiledu2502882663
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有