解决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');
... ...
});