Страница 1 из 1

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

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

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

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

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

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

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

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

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

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

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

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