欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

解决CakePHP 3.6+项目中Ajax请求403 Forbidden的问题

程序员文章站 2022-05-29 22:25:40
...

最近升级在项目中使用的CakePHP框架,发现原来在CakePHP 3.5版本中都运行正常的Ajax请求,在3.6及以上版本中都会报403 Forbidden的错误。
尝试了很多解决方法,如在Controller的beforeFilter回调函数中设置allowedActions unlockedActions等,均无效。
最后发现在较新版本的CakePHP中,配置文件config/routes.php 中默认注册并启用了CSRF中间件CsrfProtectionMiddleware,注释掉该部分代码即可。

Router::scope('/', function (RouteBuilder $routes) {
    /*
     * 注释掉以下代码
     */
    // $routes->registerMiddleware('csrf', new CsrfProtectionMiddleware([
        // 'httpOnly' => true,
    // ]));
    // $routes->applyMiddleware('csrf');

	... ...
});