Я пытаюсь отправить запрос AJAX методу контроллера...
Я сделал следующее в соответствии с инструкциями на https://book.cakephp.org/3.0/en/controllers/components/csrf.html#csrf-protection-and-ajax-запросы
public function beforeFilter(Event $event)
{
$this->Security->config('unlockedActions', ['galleryReorder']);
if (in_array($this->request->action, ['galleryReorder'])) {
$this->eventManager()->off($this->Csrf);
}
return parent::beforeFilter($event);
}
Однако метод beforeFilter, похоже, не срабатывает, и я продолжаю получать несоответствие токена CSRF...
Любые идеи о том, что я могу делать неправильно?
Спасибо
Я думаю, что да, как мне пропустить промежуточную защиту csrf?
Возможный дубликат Отключение CSRF для определенного действия CakePHP 3
Проверьте второй ответ.
@GregSchmidt Это не слишком хороший пример, поскольку прямого доступа к суперглобальным значениям следует избегать, когда это возможно - если, конечно, вы не хотеть, чтобы испортить тестовую среду;) Не то, чтобы я хотел зазывать для себя, но проверьте, например, stackoverflow.com/questions/47714940/… для идеи о том, как использовать маршруты и настраиваемые промежуточные программы для частичного/условного применения защиты от CSRF.
Хороший вопрос, я недостаточно внимательно рассмотрел детали реализации, только общие штрихи.





Используете ли вы промежуточное ПО CSRF? Если это так, то решение для пропуска защиты CSRF по запросу совершенно другое.