Bad Request (#400): Не удалось проверить переданные данные.

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
Аватара пользователя
bemulima
Сообщения: 191
Зарегистрирован: 2012.12.20, 09:41
Откуда: Курган

Bad Request (#400): Не удалось проверить переданные данные.

Сообщение bemulima »

Есть форма для установления города для фильтра. Она есть на каждой странице по умолчанию скрыта, отображается на модальном окне, когда нажимаешь на название города на шапке. Установить город можно на любой странице, но вот на одной странице не устанавливается - настройка профиля.
Пред загрузкой страницы настройка профиля отправляется запрос на RESP API дабы получить данные пользователя, передаются access_token и _csrf token, как получили заполняется форма профиля полученными данными. Форма профиля при изменении отправляется на сервер с тем же _csrf токеном и сохраняется удачно а вот форма для установления города возвращает

Код: Выделить всё

Bad Request (#400): Не удалось проверить переданные данные. 
Почему одна форма сохраняетя а другая нет, токен в заголовке передается один и тот же, изначальный. Я понял, что именно из за запроса на RESP API не срабатывает форма для города, я попробовал не запрашивать данные пользователя через RESP API тогда работает. Только мне необходим запрос и как дружить _csrf токены не могу понять. Подскажите пожалуйста, что не так, куда рыть?

skynin
Сообщения: 389
Зарегистрирован: 2017.12.12, 10:09

Re: Bad Request (#400): Не удалось проверить переданные данные.

Сообщение skynin »

Сталкивался с подобным, смотрел в код

Насколько помню Yii ищет _csrf в теле запроса, а если не находит, то потом в заголовке
НО, если Rest то кажется в одном месте, в заголовке только
Плюс, кажется для Rest контроллера надо явно указывать что будет использован _csrf, у него другие умолчания
Плюс формат сообщения посмотрите, может быть Yii ждет application/json а вы ему application/x-www-form-urlencoded шлете(или наоборот). тоже надо, либо указать что придет, либо слать в том что ждет контроллер

Смотрите на низком уровне - что приходит в контроллер, и как он так ищет, что его ответ "Не удалось проверить переданные данные."
Не желайте странного, и не будет у вас головной боли чтобы достичь этого странного.
Тем более что окажется что оно вам и не нужно было, странное это.

Аватара пользователя
bemulima
Сообщения: 191
Зарегистрирован: 2012.12.20, 09:41
Откуда: Курган

Re: Bad Request (#400): Не удалось проверить переданные данные.

Сообщение bemulima »

skynin писал(а):
2020.02.11, 14:58
Сталкивался с подобным, смотрел в код

Насколько помню Yii ищет _csrf в теле запроса, а если не находит, то потом в заголовке
НО, если Rest то кажется в одном месте, в заголовке только
Плюс, кажется для Rest контроллера надо явно указывать что будет использован _csrf, у него другие умолчания
Плюс формат сообщения посмотрите, может быть Yii ждет application/json а вы ему application/x-www-form-urlencoded шлете(или наоборот). тоже надо, либо указать что придет, либо слать в том что ждет контроллер

Смотрите на низком уровне - что приходит в контроллер, и как он так ищет, что его ответ "Не удалось проверить переданные данные."
Спасибо за ответ. Пока временно решил вопрос получив данные пользователя сразу же вместе загрузкой страницы. Позже разберусь с запросом на RESP API.

Ответить