Ошибка "Не удалось проверить переданные данные." при отправке данных в yii2 решается либо отключением проверки csfr, либо передачей секретного ключа.
//В файле конфигурации отключаем для всего приложения
'components' => [
'request' => [
...
'enableCsrfValidation'=>false,
...
],
...
],
// Отключаем в конкретном месте
$this->enableCsrfValidation = false;
В мета тэгах вашего шаблона
echo Html::csrfMetaTags();
это добавит строки содержащие имя параметра и сам токен
<meta name="csrf-param" content="_csrf">
<meta name="csrf-token" content="OTDOwBtYk-tsjYLIgTAXrqhKwU-WgneMk_TpFcbE6DwPCIu3XRPJhj202Jn0Z3TP4Ry3ecevOcC-x4ZQkKu8dg==">
В формах
<input type="hidden" name="_csrf" value="OTDOwBtYk-tsjYLIgTAXrqhKwU-WgneMk_TpFcbE6DwPCIu3XRPJhj202Jn0Z3TP4Ry3ecevOcC-x4ZQkKu8dg==">
Если форму создавать методами ActiveForm::begin() и Html:beginForm(), то input будет подставляться автоматически
Если же вы сами создаёте форму, то пишите так
<input type="hidden" name="<?=Yii::$app->request->csrfParam; ?>" value="<?=Yii::$app->request->getCsrfToken(); ?>" />
Если отправляете ajax запрос, то в javascript можно получить csrf токен из метатэгов
var param = $('meta[name="csrf-param"]').attr("content");
var token = $('meta[name="csrf-token"]').attr("content");
$.ajax({
url: 'https://help1c.su',
type: 'post',
dataType: 'json',
data: {'data1': data1, 'data2': data2,....., param : token},
});