yii2 Ошибка Bad Request (#400): Unable to verify your data submission. РЕШЕНИЕ -- скрытое поле (Не удалось проверить переданные данные.)

Почему это

Ошибка вызвана борьбой Yii2 c проблемами безопасности типа CSRF.

Как решить

Для того, чтобы форма отправлялась в ней должно быть скрытое вида:

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

Причём значение для имени name инпута (в данном примере оно выставлено в "_frontendCSRF") тоже "имеет значение" -- его можно получить вызовом:

\yii::$app->request->csrfParam

или: чтобы узнать какое именно оно должно быть выполните на этой же странице код:

<?php

use yii\helpers\Html;
use yii\bootstrap\Nav;
use yii\bootstrap\NavBar;
use yii\widgets\Breadcrumbs;
use frontend\assets\AppAsset;
use common\widgets\Alert;
?>

<?= Html::csrfMetaTags() ?>

Например в моём случае я получил:

 <meta name="csrf-param" content="_frontendCSRF">
    <meta name="csrf-token" content="c3lRWjVEWXBESzkPBHBv22sMY888FWg6QkATNnAKKyU0Sh93RCstPg==">

Т.е. нужно взять значение метатэга csrf-param, что я и сделал для ajax-формы

Откуда берутся и как настроить

вообще изначально это настройки компонента запроса, выглядеть может как-то так:

        'request' => [
            // !!! ниже должно быть уникальное значение !!
            'cookieValidationKey' => 'dthzOCfgHfvafCJjccDH', // секретный ключ
            'csrfParam' => '_frontendCSRF', // будет использовать как имя поля (атр. name)
            'baseUrl' => ''
        ],

И располагаться в файл конфига вашего приложения:

\frontend\config\main.php

или же конфиге общем (для всех приложений сайта если не указано иное):

\common\config\main.php