yii2 — Как решить неправильный запрос (# 400) Невозможно подтвердить отправку данных?

У меня есть контроллер, сгенерированный 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="...">

Кто-нибудь здесь может помочь мне решить эту проблему? И объяснить это, почему это происходит?

6

Решение

добавить в виде в представлении

<input type="hidden" name="_csrf" value="<?=Yii::$app->request->getCsrfToken()?>" />
4

Другие решения

У меня была та же проблема, и в итоге я отключил проверку csrf.

public function actionCreate() {
Yii::$app->controller->enableCsrfValidation = false;
}

Это, казалось, сделало это для меня.

-3

По вопросам рекламы [email protected]