You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CodeIgniter 4结合Ajax出现CSRF错误:The action you requested is not allowed如何解决?

解决CodeIgniter 4 + Ajax开发中CSRF触发的"The action you requested is not allowed"错误

在CodeIgniter 4结合Ajax开发时,常会遇到CSRF保护机制触发的错误提示:The action you requested is not allowed.,对应的错误日志如下:

CRITICAL - 2023-06-10 03:41:17 --> The action you requested is not allowed.
in SYSTEMPATH/Security/Security.php on line 306.
 1 SYSTEMPATH/Security/Security.php(306): CodeIgniter\Security\Exceptions\SecurityException::forDisallowedAction()
 2 SYSTEMPATH/Filters/CSRF.php(55): CodeIgniter\Security\Security->verify(Object(CodeIgniter\HTTP\IncomingRequest))
 3 SYSTEMPATH/Filters/Filters.php(173): CodeIgniter\Filters\CSRF->before(Object(CodeIgniter\HTTP\IncomingRequest), null)
 4 SYSTEMPATH/CodeIgniter.php(473): CodeIgniter\Filters\Filters->run('api/v1/notification/markasseen/4', 'before')
 5 SYSTEMPATH/CodeIgniter.php(368): CodeIgniter\CodeIgniter->handleRequest(null, Object(Config\Cache), false)
 6 FCPATH/index.php(68): CodeIgniter\CodeIgniter->run()

我自己开发时也碰到过这个问题,下面分享几个可行的解决方案:

  • 确保Ajax请求携带CSRF令牌
    首先在页面的<head>中添加meta标签输出当前CSRF令牌:

    <meta name="csrf-token" content="<?= csrf_hash() ?>">
    

    然后在Ajax请求中通过请求头或者表单数据携带令牌,以jQuery为例:

    $.ajax({
        url: '/api/v1/notification/markasseen/4',
        method: 'POST',
        headers: {
            'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
        },
        data: {
            // 你的业务数据
        },
        success: function(res) {
            // 处理响应逻辑
        }
    });
    
  • 调整CSRF配置排除特定路由
    如果你的API路由不需要CSRF保护(比如对外公开的接口),可以在app/Config/Security.php中配置$csrfExcludeURIs,把目标路由加进去:

    public $csrfExcludeURIs = [
        'api/v1/notification/markasseen/*'
    ];
    

    同时确认$csrfProtection的设置,默认是'cookie',这个配置适配大多数场景。

  • 检查请求方式与令牌有效性

    • CodeIgniter的CSRF保护默认只作用于POST/PUT/DELETE等修改类请求,GET请求不会触发检查,确认你的请求方式是否符合预期;
    • 令牌有有效期,默认2小时,若需要调整可以修改Security.php中的$csrfExpire参数,单位是秒。

内容的提问来源于stack exchange,提问作者Obot Ernest

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 08:57:18