У меня есть контроллер, сгенерированный Gii. Я изменяю поведение так:
public function behaviors()
{
return [
'verbs' => [
'class' => VerbFilter::className(),
'actions' => [
'delete' => ['post'],
],
],
'access' => [
'class' => AccessControl::className(),
'rules' => [
[
'allow' => true,
'roles' => ['@'],
],
],
],
];
}
Когда я заполняю форму и отправляю ее, иногда я получаю сообщение об ошибке
Bad Request (#400) Unable to verify your data submission
Но если я нажму на кнопку «Назад» в своем браузере и повторно отправлю форму с тем же значением, все будет в порядке, если она успешно отправлена.
Я искал в Google и StackOverflow, многие из них говорят, что проблема в CSRF Token. Но в моем макете я положил <?= Html::csrfMetaTags() ?>
и в моей форме есть <input type="hidden" name="_csrf" value="...">
Кто-нибудь здесь может помочь мне решить эту проблему? И объяснить это, почему это происходит?
добавить в виде в представлении
<input type="hidden" name="_csrf" value="<?=Yii::$app->request->getCsrfToken()?>" />
У меня была та же проблема, и в итоге я отключил проверку csrf.
public function actionCreate() {
Yii::$app->controller->enableCsrfValidation = false;
}
Это, казалось, сделало это для меня.