Случаются в жизни огорчения, когда нужно запостить форму с внешнего источника. Например из самопального плагина к броузеру. Просто так YII2 такие вещи сделать не даст. Потому что умным быть пытается. csrf и все такое. Ежели Вы, например, сформировали ручками POST и запулили на метод контроллера, то вместо обработки запроса, получите на руки
Что в принципе правильно. Ибо нефиг тут формы сабмитить направо и налево. И никакие пляски с behaviors не помогут. Нельзя, значит нельзя. Рисуйте отдельный контроллер, с отдельным layout и отключайте там csrf.
Но! если нужда заставила в одном методе таки делать POST напрямую, то нет смысла городить отдельную филармонию с балетом и флейтистками. Есть способ проще и быстрее.
И после этого на соответствующее действие проверка csrf будет отключена.
Bad Request (#400)
Не удалось проверить переданные данные.
The above error occurred while the Web server was processing your request.
Что в принципе правильно. Ибо нефиг тут формы сабмитить направо и налево. И никакие пляски с behaviors не помогут. Нельзя, значит нельзя. Рисуйте отдельный контроллер, с отдельным layout и отключайте там csrf.
Но! если нужда заставила в одном методе таки делать POST напрямую, то нет смысла городить отдельную филармонию с балетом и флейтистками. Есть способ проще и быстрее.
public function beforeAction($action) {
$this->enableCsrfValidation = ($action->id !== "ДЕЙСТВИЕ");
return parent::beforeAction($action);
}
И после этого на соответствующее действие проверка csrf будет отключена.
Thank
ОтветитьУдалитьспасибо
ОтветитьУдалить